Baseline Widely available
Array.from()
éçã¡ã½ããã¯ãå復å¯è½ãªãã¸ã§ã¯ããé
å風ãªãã¸ã§ã¯ãããã·ã£ãã¼ã³ãã¼ããããæ°ãã Array
ã¤ã³ã¹ã¿ã³ã¹ãçæãã¾ãã
console.log(Array.from("foo"));
// Expected output: Array ["f", "o", "o"]
console.log(Array.from([1, 2, 3], (x) => x + x));
// Expected output: Array [2, 4, 6]
æ§æ
Array.from(arrayLike)
Array.from(arrayLike, mapFn)
Array.from(arrayLike, mapFn, thisArg)
弿°
arrayLike
é åã«å¤æããå復å¯è½ãªãã¸ã§ã¯ãã¾ãã¯é å風ãªãã¸ã§ã¯ãã
mapFn
çç¥å¯
é
åã®åè¦ç´ ã«å¯¾ãã¦å¼ã³åºã颿°ã§ããæå®ãããå ´åãé
åã«è¿½å ããããã¹ã¦ã®å¤ã¯æåã«ãã®é¢æ°ã«æ¸¡ããã代ããã« mapFn
ã®è¿å¤ãé
åã«è¿½å ããã¾ãããã®é¢æ°ã¯ä»¥ä¸ã®å¼æ°ã§å¼ã³åºããã¾ãã
element
é åå ã§ç¾å¨å¦çä¸ã®è¦ç´ ã§ãã
index
é åå ã§ç¾å¨å¦çä¸ã®è¦ç´ ã®ã¤ã³ããã¯ã¹ã§ãã
thisArg
çç¥å¯
mapFn
ãå®è¡ããæã« this
ã¨ãã¦ä½¿ç¨ããå¤ã§ãã
æ°ãã Array
ã¤ã³ã¹ã¿ã³ã¹ã
Array.from()
ã¯ã以ä¸ã®ãã®ãã Array
ãçæãã¾ãã
Map
ã Set
ã®ãããªè¦ç´ ãåå¾ãããªãã¸ã§ã¯ãï¼length
ããããã£ããã³æ·»åã®ä»ããè¦ç´ ãæã¤ãªãã¸ã§ã¯ãï¼å復å¯è½ãªãã¸ã§ã¯ãã§ãé
å風ã§ããªãæ®éã®ãªãã¸ã§ã¯ããé
åã«å¤æããã«ã¯ï¼ããããã£ã®ãã¼ãå¤ãã¾ãã¯ãã®ä¸¡æ¹ãåæãã¦ï¼ Object.keys()
ãObject.values()
ãObject.entries()
ã®ããããã使ç¨ãã¦ãã ãããéåæå復å¯è½ãªãã¸ã§ã¯ããé
åã«å¤æããã«ã¯ãArray.fromAsync()
ã使ç¨ãã¾ãã
Array.from()
ã¯çé
åã使ãã¾ããã arrayLike
ãªãã¸ã§ã¯ãã®ã¤ã³ããã¯ã¹ããããã£ãæ¬ ãã¦ããå ´åãæ°ããé
åã§ã¯ undefined
ã«ãªãã¾ãã
Array.from()
ã«ã¯ãªãã·ã§ã³ã§ mapFn
ã¨ãã弿°ãããã map()
ã¨åæ§ã«ã使ããé
åã®ããããã®è¦ç´ ã«å¯¾ãã¦é¢æ°ãå®è¡ãããã¨ãã§ãã¾ããããæç¢ºã«ã¯ãArray.from(obj, mapFn, thisArg)
㯠Array.from(obj).map(mapFn, thisArg)
ã¨åãçµæãä¿æãã¾ãããã ããArray.from(obj).map(mapFn, thisArg)
ã¯ä¸éé
åã使ãããmapFn
ã¯é
åå
¨ä½ãæããã« 2 ã¤ã®å¼æ° (element
, index
) ãåãåãã ãã§ãã
ã¡ã¢: ãã®åä½ã¯åä»ãé
åã«ã¨ã£ã¦ããéè¦ã§ãããªããªããä¸éã®é
åã¯é©åãªåãå
¥åããããã«å¿
ç¶çã«å¤ãåãæ¨ã¦ãããããã§ãã Array.from()
㯠TypedArray.from()
ã¨åãã·ã°ããã£ãæã¤ããã«å®è£
ãã¾ãã
Array.from()
ã¡ã½ããã¯æ±ç¨ãã¡ã¯ããªã¼ã¡ã½ããã§ããä¾ãã°ã Array
ã®ãµãã¯ã©ã¹ã from()
ã¡ã½ãããç¶æ¿ããå ´åãç¶æ¿ãã from()
ã¡ã½ãã㯠Array
ã¤ã³ã¹ã¿ã³ã¹ã§ã¯ãªãããµãã¯ã©ã¹ã®æ°ããã¤ã³ã¹ã¿ã³ã¹ãè¿ãã¾ããå®éã«ã¯ãæ°ããé
åã®é·ãã表ãåä¸ã®å¼æ°ãåãå
¥ããã³ã³ã¹ãã©ã¯ã¿ã¼é¢æ°ã this
å¤ã¨ãã¦æå®ãããã¨ãã§ãã¾ããå復å¯è½ãªãã¸ã§ã¯ãã arrayLike
ã¨ãã¦æ¸¡ãããå ´åãã³ã³ã¹ãã©ã¯ã¿ã¼ã¯å¼æ°ãªãã§å¼ã³åºããã¾ããé
å風ã®ãªãã¸ã§ã¯ããæ¸¡ãããå ´åãã³ã³ã¹ãã©ã¯ã¿ã¼ã¯é
å風ãªãã¸ã§ã¯ãã®æ£è¦åãããé·ãã§å¼ã³åºããã¾ããæçµç㪠length
ã¯å復å¦çãå®äºããã¨ãã«åã³è¨å®ããã¾ãããã this
ã®å¤ãã³ã³ã¹ãã©ã¯ã¿ã¼é¢æ°ã§ãªãå ´åã代ããã«ãã¬ã¼ã³ãª Array
ã³ã³ã¹ãã©ã¯ã¿ã¼ã使ç¨ããã¾ãã
Array.from("foo");
// [ "f", "o", "o" ]
Set ããã®é
åã®çæ
const set = new Set(["foo", "bar", "baz", "foo"]);
Array.from(set);
// [ "foo", "bar", "baz" ]
Map ããã®é
åã®çæ
const map = new Map([
[1, 2],
[2, 4],
[4, 8],
]);
Array.from(map);
// [[1, 2], [2, 4], [4, 8]]
const mapper = new Map([
["1", "a"],
["2", "b"],
]);
Array.from(mapper.values());
// ['a', 'b'];
Array.from(mapper.keys());
// ['1', '2'];
NodeList ããã®é
åã®çæ
// DOM è¦ç´ ã®ããããã£ã«åºã¥ãé
åã使ãã¾ãã
const images = document.querySelectorAll("img");
const sources = Array.from(images, (image) => image.src);
const insecureSources = sources.filter((link) => link.startsWith("http://"));
é
å風ãªãã¸ã§ã¯ãï¼å¼æ°ï¼ããã®é
åã®çæ
function f() {
return Array.from(arguments);
}
f(1, 2, 3);
// [ 1, 2, 3 ]
ã¢ãã¼é¢æ°ã¨ Array.from ã®ä½¿ç¨
// è¦ç´ ãæä½ããããã®ããã颿°ã¨ãã¦
// ã¢ãã¼é¢æ°ã使ç¨
Array.from([1, 2, 3], (x) => x + x);
// [2, 4, 6]
// é£çªã®çæ
// é
åã¯ããããã®å ´æã `undefined` ã§åæåãããããã
// 以ä¸ã® `v` ã®å¤ã¯ `undefined` ã«ãªã
Array.from({ length: 5 }, (v, i) => i);
// [0, 1, 2, 3, 4]
é£çªã®çæï¼ç¯å²æå®ï¼
// é£çªã®çæé¢æ°ï¼Clojure ã PHP ãªã©ã§ãã "range" ã¨å¼ã°ããï¼
const range = (start, stop, step) =>
Array.from({ length: (stop - start) / step + 1 }, (_, i) => start + i * step);
// 0..4 ã®ç¯å²ã®æ°å¤ãçæ
range(0, 4, 1);
// [0, 1, 2, 3, 4]
// 1..10 ã®ç¯å²ã®æ°å¤ã 2 ãã¨ã«çæ
range(1, 10, 2);
// [1, 3, 5, 7, 9]
// Array.from ã使ç¨ãã¦é çªéãã«ãªãããã¢ã«ãã¡ããããçæ
range("A".charCodeAt(0), "Z".charCodeAt(0), 1).map((x) =>
String.fromCharCode(x),
);
// ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"]
é
åã§ãªãã³ã³ã¹ãã©ã¯ã¿ã¼ã«ããã from() ã®å¼ã³åºã
from()
ã¡ã½ããã¯ãæ°ããé
åã®é·ãã表ãåä¸ã®å¼æ°ãåãå
¥ããã³ã³ã¹ãã©ã¯ã¿ã¼é¢æ°ã§å¼ã³åºããã¨ãã§ãã¾ãã
function NotArray(len) {
console.log("NotArray called with length", len);
}
// å復å¯è½
console.log(Array.from.call(NotArray, new Set(["foo", "bar", "baz"])));
// NotArray ã length ã undefined ã®ã¾ã¾ã§å¼ã³åºã
// NotArray { '0': 'foo', '1': 'bar', '2': 'baz', length: 3 }
// é
å風
console.log(Array.from.call(NotArray, { length: 1, 0: "foo" }));
// NotArray called with length 1
// NotArray { '0': 'foo', length: 1 }
this
ã®å¤ãã³ã³ã¹ãã©ã¯ã¿ã¼ã§ãªãå ´åã¯ããã¬ã¼ã³ãª Array
ãªãã¸ã§ã¯ããè¿ãã¾ãã
console.log(Array.from.call({}, { length: 1, 0: "foo" })); // [ 'foo' ]
仿§æ¸ ãã©ã¦ã¶ã¼ã®äºææ§ é¢é£æ
å ±
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4