Baseline Widely available *
Array
ãªãã¸ã§ã¯ãã¯ãä»ã®ããã°ã©ãã³ã°è¨èªã®é
åã¨åæ§ã«ãè¤æ°ã®ã¢ã¤ãã ã®éåãåä¸ã®å¤æ°åã®ä¸ã«æ ¼ç´ãããã¨ãã§ããå
±éã®é
åæä½ãè¡ãããã®ã¡ã³ãã¼ãæã£ã¦ãã¾ãã
JavaScript ã§ã¯ãé
åã¯ããªããã£ãã§ã¯ãªããä¸»ã«æ¬¡ã®ãããªæ§è³ªãæã¤ Array
ãªãã¸ã§ã¯ãã§ãã
0
ã®ä½ç½®ã«ããã 2 çªç®ã®è¦ç´ 㯠1
ã®ä½ç½®ã«ããã¨ãã£ãå
·åã§ããããã¦ãæå¾ã®è¦ç´ ã¯é
åã® length
ããããã£ã®å¤ãã 1
ãå¼ããä½ç½®ã«ãªãã¾ããArray
ãªãã¸ã§ã¯ãã¯è¦ç´ ã®æ·»åã¨ãã¦ä»»æã®æååãï¼é£æ³é
åã®ããã«ï¼ä½¿ç¨ãããã¨ã¯ã§ãã¾ãããéè² ã®æ´æ°ï¼ã¾ãã¯ãã®æååå½¢å¼ï¼ã使ç¨ããªããã°ãªãã¾ãããæ´æ°ä»¥å¤ã®å¤ã§è¨å®ãããã¢ã¯ã»ã¹ãããããã¨ãé
åã®ãªã¹ãèªä½ã®è¦ç´ ãè¨å®ãããåãåºããããããã¨ã¯ã§ãã¾ãããããã®é
åã®ãªãã¸ã§ã¯ãããããã£ã®éåã«é¢é£ãã夿°ãè¨å®ãããã¢ã¯ã»ã¹ããããããã¨ãã§ãã¾ããé
åã®ãªãã¸ã§ã¯ãããããã£ã¨é
åè¦ç´ ã®ãªã¹ãã¯å¥åã®ãã®ã§ãããé
åã®æ¢ç´¢ã夿´æä½ã¯ãããã®ååä»ãããããã£ã«é©ç¨ãããã¨ãã§ãã¾ããã
toString
ãä¸ã¤ã®ããããã£ã§ããã®ã¨åæ§ã«ï¼ãã ãå³å¯ã«ã¯ toString()
ã¯ã¡ã½ããã§ããï¼ãé
åã«ãããé
åè¦ç´ ã¯ãªãã¸ã§ã¯ãã®ããããã£ã§ããããããæ¬¡ã®ããã«é
åã«ã¢ã¯ã»ã¹ãããã¨ããã¨ãããããã£åã妥å½ã§ãªããããæ§æã¨ã©ã¼ãçºçãã¾ãã
arr.0; // æ§æã¨ã©ã¼
JavaScript ã®æ§æã§ã¯ãæ°åã§å§ã¾ãããããã£ã«ã¯ãã©ã±ããè¨æ³ã使ãå¿
è¦ãããããããè¨æ³ã使ããã¨ã¯ã§ãã¾ãããã¾ããé
åã®æ·»åãå¼ç¨ç¬¦ã§å²ããã¨ãã§ãã¾ããï¼years[2]
ã®ä»£ããã« years['2']
ã®ããã«ï¼ããµã¤ãã¯ããããå¿
è¦ã¯ããã¾ããã
years[2]
ã® 2
ã¯æçµçã«ãJavaScript ã¨ã³ã¸ã³ãå
é¨çã« toString
ã¡ã½ããã§å夿ãããã¨ã§æååã«ããã¾ãããã㯠'2' 㨠'02' ã years
ãªãã¸ã§ã¯ãã®ç°ãªãå ´æãæãããã«ããããã§ã§ãããã®ããã以ä¸ã®ä¾ã¯ true
ããã°åºåããã¾ãã
console.log(years["2"] !== years["02"]);
years['2']
ã ããå®éã®é
åã®æ·»åã§ãã years['02']
ã¯èªç±ãªæååã®ããããã£ã§ãããé
åã®å復å¦çã§ã¯å¦çããã¾ããã
JavaScript ã®é
åã® length
ããããã£ã¨æ°å¤ããããã£ã¯é¢é£ãã¦ãã¾ãã
é
åã®ä¸é¨ã®çµè¾¼ã¿ã¡ã½ããï¼ä¾ãã° join()
, slice()
, indexOf()
, ãªã©ï¼ã¯ãé
åã® length
ããããã£ã®å¤ã¯ã¡ã½ããã®å¼ã³åºãæã®å¤ãèæ
®ãã¾ãã
ä»ã«ãï¼ä¾ãã° push()
, splice()
, ãªã©ï¼ãçµæã¨ãã¦é
åã® length
ããããã£ãæ´æ°ããã¡ã½ãããããã¾ãã
const fruits = [];
fruits.push("ããã", "ããã", "ãã");
console.log(fruits.length); // 3
JavaScript ã®é
åã§ãé
åã®æ·»åã¨ãã¦å¦¥å½ãªããããã£ã§ããããã¤ç¾å¨ã®é
åã®ç¯å²ã®å¤ã«ããæ·»åãè¨å®ããã¨ãã¨ã³ã¸ã³ã¯é
åã® length
ããããã£ãæ´æ°ãã¾ãã
fruits[5] = "ãã³ã´ã¼";
console.log(fruits[5]); // "ãã³ã´ã¼"
console.log(Object.keys(fruits)); // ['0', '1', '2', '5']
console.log(fruits.length); // 6
length
ãå¢ããã¨ã undefined
ã§ããªããæ°ããè¦ç´ ã使ããã«ç©ºã®ã¹ãããã追å ãã¦é
åãæ¡å¼µãã¾ãã
fruits.length = 10;
console.log(fruits); // ['ããã', 'ããã', 'ãã', 空 x 2, 'ãã³ã´ã¼', 空 x 4]
console.log(Object.keys(fruits)); // ['0', '1', '2', '5']
console.log(fruits.length); // 10
console.log(fruits[8]); // undefined
䏿¹ã length
ããããã£ã®æ°ãæ¸ããã¨ãè¦ç´ ãåé¤ããã¾ãã
fruits.length = 2;
console.log(Object.keys(fruits)); // ['0', '1']
console.log(fruits.length); // 2
ãããã«ã¤ãã¦ã¯ Array/length
ã®ãã¼ã¸ã§è©³ãã解説ãã¾ãã
çé
åã§ç©ºã®ã¹ãããã«ééããå ´åãé
åã¡ã½ããã®æåã¯ãã¾ãã¾ã§ããä¸è¬çã«ãå¤ãã¡ã½ããï¼forEach
ãªã©ï¼ã§ã¯ã空ã®ã¹ããã㨠undefined
ã®å¤ãæ ¼ç´ããä½ç½®ãç°ãªãæ¹æ³ã§å¦çãã¾ãã
空ã®ã¹ãããã«ç¹å¥ãªå¦çãè¡ãã¡ã½ããã«ã¯ã concat()
, copyWithin()
, every()
, filter()
, flat()
, flatMap()
, forEach()
, indexOf()
, lastIndexOf()
, map()
, reduce()
, reduceRight()
, reverse()
, slice()
, some()
, sort()
, splice()
ãããã¾ããforEach
ãªã©ã®å復å¦çã¡ã½ããã¯ã空ã®ã¹ããããã¾ã£ããå¦çãã¾ãããä»ã«ã concat
ã copyWithin
ãªã©ãã³ãã¼ããéã«ç©ºã®è¦ç´ ãç¶æããã¡ã½ãããããã¾ãããçµå±ã®ã¨ããé
åã¯çã®ã¾ã¾ã§ãã
const colors = ["red", "yellow", "blue"];
colors[5] = "purple";
colors.forEach((item, index) => {
console.log(`${index}: ${item}`);
});
// åºå:
// 0: red
// 1: yellow
// 2: blue
// 5: purple
colors.reverse(); // ['purple', 空 à 2, 'blue', 'yellow', 'red']
æ°ããã¡ã½ããï¼keys
ãªã©ï¼ã¯ã空ã®ã¹ããããç¹å¥æ±ããããundefined
ãæ ¼ç´ããã¦ãããã®ããã«æ±ãã¾ãã空ã®ã¹ããã㨠undefined
è¦ç´ ãåä¸è¦ããã¡ã½ããã«ã¯ãentries()
, fill()
, find()
, findIndex()
, findLast()
, findLastIndex()
, includes()
, join()
, keys()
, toLocaleString()
, toReversed()
, toSorted()
, toSpliced()
, values()
, with()
ãªã©ãããã¾ãã
const colors = ["red", "yellow", "blue"];
colors[5] = "purple";
const iterator = colors.keys();
for (const key of iterator) {
console.log(`${key}: ${colors[key]}`);
}
// åºåt
// 0: red
// 1: yellow
// 2: blue
// 3: undefined
// 4: undefined
// 5: purple
const newColors = colors.toReversed(); // ['purple', undefined, undefined, 'blue', 'yellow', 'red']
ã³ãã¼ã¡ã½ããã¨å¤æ´ã¡ã½ãã
ã¡ã½ããã®ä¸ã«ã¯ãå¼ã³åºãããæ¢åã®é åã夿´ããã«æ°ããé åãè¿ããã®ãããã¾ãããã®å ´åã¯ãã¾ãæ°ããé åã使ããããã«è¦ç´ ãä»£å ¥ãã¾ããã³ãã¼ã¯å¸¸ã«ã·ã£ãã¼ã³ãã¼ã§è¡ãããã¡ã½ããã¯æåã«ä½æãããé å以å¤ãã³ãã¼ãããã¨ã¯ããã¾ãããå ã®é åã®è¦ç´ ã¯ã次ã®ããã«æ°ããé åã«ã³ãã¼ããã¾ãã
String
, Number
, Boolean
ãªãã¸ã§ã¯ãã§ã¯ãªããã®ï¼ã®å ´åãå¤ã¯æ°ããé
åã¸ã³ãã¼ããã¾ããä»ã«ããã¡ã½ãããå¼ã³åºãããé åã夿´ããã¡ã½ãããããã¾ãããã®å ´åãã¡ã½ããã«ãã£ã¦è¿å¤ãç°ãªãã¾ãããããã®ã¯åãé åã¸ã®åç §ãããããã®ã¯æ°ããé åã®é·ããè¿ãã¾ãã
this.constructor[Symbol.species]
ã«ã¢ã¯ã»ã¹ãã¦ä½¿ç¨ããã³ã³ã¹ãã©ã¯ã¿ã¼ã決å®ããæ°ããé
åã使ããã¡ã½ããã¯ãconcat()
, filter()
, flat()
, flatMap()
, map()
, slice()
, splice()
ï¼è¿ãããè¦ç´ ãåãé¤ããé
åãæ§æããããï¼ã§ãã
常㫠Array
ãã¼ã¹ã®ã³ã³ã¹ãã©ã¯ã¿ã¼ã§æ°ããé
åã使ããã¡ã½ããã¯ãtoReversed()
, toSorted()
, toSpliced()
, with()
ã§ãã
次ã®è¡¨ã¯ãå ã®é åã夿´ã¡ã½ããã¨ãããã«å¯¾å¿ãã夿´ããªã代æ¿ã¡ã½ããã®ä¸è¦§ã§ãã
夿´ã¡ã½ããã夿´ããªã代æ¿ã¡ã½ããã«å¤æ´ããç°¡åãªæ¹æ³ã¯ãã¹ãã¬ããæ§æ ã slice()
ã使ã£ã¦æåã«ã³ãã¼ã使ãããã¨ã§ãã
arr.copyWithin(0, 1, 2); // arr ã夿´
const arr2 = arr.slice().copyWithin(0, 1, 2); // arr ã夿´ããªã
const arr3 = [...arr].copyWithin(0, 1, 2); // arr ã夿´ããªã
å復å¦çã¡ã½ãã
å¤ãã®é åã¡ã½ããã¯ãã³ã¼ã«ããã¯é¢æ°ã弿°ã«ã¨ãã¾ããã³ã¼ã«ããã¯é¢æ°ã¯é åã®ããããã®è¦ç´ ã«å¯¾ãã¦é 次ãæå¤§1åå¼ã³åºãããã³ã¼ã«ããã¯é¢æ°ã®è¿å¤ã¯ã¡ã½ããã®è¿å¤ã決å®ããããã«ä½¿ç¨ããã¾ãããããã¯ãã¹ã¦åãå½¢å¼ã§ãã
method(callbackFn, thisArg)
callbackFn
㯠3 ã¤ã®å¼æ°ãåãã¾ãã
element
é åã®ä¸ã§ç¾å¨å¦çããã¦ããè¦ç´ ã
index
é åã®ä¸ã§ãç¾å¨å¦çä¸ã®è¦ç´ ã®æ·»åã
array
ã¡ã½ãããå¼ã³åºãããé åã
callbackFn
ãä½ãè¿ããã¯ãå¼ã³åºãããé
åã¡ã½ããã«ãã£ã¦ç°ãªãã¾ãã
弿° thisArg
ï¼æ¢å®å¤ã¯ undefined
ï¼ã¯ãcallbackFn
ãå¼ã³åºãéã« this
å¤ã¨ãã¦ä½¿ç¨ããã¾ããcallbackFn
ããæçµçã«è¦ãã this
å¤ã¯ãé常ã®ã«ã¼ã«ã«å¾ã£ã¦æ±ºå®ãã¾ãããã callbackFn
ã峿 ¼ã¢ã¼ãã§ã¯ãªãã®ã§ããã°ãthis
ã®å¤ãããªããã£ãåã§ãã£ãå ´åã¯ãªãã¸ã§ã¯ãã«ã©ãããããundefined
/null
ã®å ´å㯠globalThis
ã«ç½®ãæããã¾ããcallbackFn
ãã¢ãã¼é¢æ°ã§å®ç¾©ããã¦ããå ´åã¯ãthisArg
弿°ã¯é¢ä¿ããã¾ãããã¢ãã¼é¢æ°ã«ã¯èªåèªèº«ã® this
ã®ãã¤ã³ãã£ã³ã°ããªãããã§ãã
callbackFn
ã«æ¸¡ããã弿° array
ã¯ãå復å¦çä¸ã«å¥ã®è¦ç´ ãèªã¿è¾¼ã¿ããå ´åã«æã便å©ã§ãããªããªããç¾å¨ã®é
åãåç
§ããæ¢åã®å¤æ°ã常ã«åå¨ããã¨ã¯éããªãããã§ããé常ãå復å¦çä¸ã«é
åã夿´ãã¹ãã§ã¯ããã¾ããï¼å復å¦çå
ã§ã®åæé
åã®å¤æ´ãåç
§ï¼ããããããã®å¼æ°ã使ç¨ãã¦å¤æ´ãããã¨ãã§ãã¾ããé
å弿°ã¯ãmap()
ãfilter()
ãflatMap()
ãªã©ã®ã¡ã½ããã®å ´åãæ§ç¯ä¸ã®é
åã§ã¯ããã¾ãããæ§ç¯ä¸ã®é
åã«ã³ã¼ã«ããã¯é¢æ°ããã¢ã¯ã»ã¹ããæ¹æ³ã¯ããã¾ããã
ãã¹ã¦ã®å復å¯è½ãªãã¸ã§ã¯ãã¯ã³ãã¼å¯è½ã§æ±ç¨æ§ãããã¾ããã空ã®ã¹ãããã§ã¯ç°ãªãå½¢ã§åä½ãã¾ãã
å復å¦çå¯è½ãªã¡ã½ããã¯ãevery()
, filter()
, find()
, findIndex()
, findLast()
, findLastIndex()
, flatMap()
, forEach()
, map()
, some()
ã§ãã
å
·ä½çã«ã¯ãevery()
, find()
, findIndex()
, findLast()
, findLastIndex()
, some()
ã¯å¸¸ã«ãã¹ã¦ã®è¦ç´ ã«å¯¾ã㦠callbackFn
ãå¼ã³åºãããã§ã¯ãªããè¿å¤ã決å®ããã¨ããã«å復å¦çã忢ãã¾ãã
reduce()
ããã³ reduceRight()
ã¡ã½ãããã³ã¼ã«ããã¯é¢æ°ãåããé
åã®ããããã®è¦ç´ ã«å¯¾ãã¦æå¤§ 1 åå®è¡ãã¾ãããä¸è¬çãªå復å¦çã¡ã½ããã¨ã¯å°ãç°ãªãå½¢å¼ãæã£ã¦ãã¾ãï¼thisArg
ãåãå
¥ããªããªã©ï¼ã
sort()
ã¡ã½ãããã³ã¼ã«ããã¯é¢æ°ãåãã¾ãããå復å¦çããã¡ã½ããã§ã¯ããã¾ãããé
åã®é
ç½®ã夿´ããthisArg
ãåãå
¥ããã1 ã¤ã®è¦ç´ ã«å¯¾ãã¦è¤æ°åã³ã¼ã«ããã¯ãå¼ã³åºããã¨ãããã¾ãã
å復å¦çã¡ã½ããã¯ã以ä¸ã®ããã«é åãå復å¦çãã¾ãï¼æè¡çãªè©³ç´°ã¯çç¥ãã¾ãï¼ã
function method(callbackFn, thisArg) {
const length = this.length;
for (let i = 0; i < length; i++) {
if (i in this) {
const result = callbackFn.call(thisArg, this[i], i, this);
// çµæã«å¯¾ãã¦ä½ãããããæ©ãæ»ããã¨ããã
}
}
}
以ä¸ã®ç¹ã«æ³¨æãã¦ãã ããã
i in this
ã®æ¤æ»ãè¡ãããã§ã¯ããã¾ããã find
ãfindIndex
ãfindLast
ãfindLastIndex
ã®æ ¸ã¡ã½ããã¯è¡ãã¾ããããä»ã®ã¡ã½ããã¯è¡ãã¾ããlength
ã¯ãã«ã¼ãéå§åã«è¨æ¶ããã¾ããããã¯ãå復å¦çä¸ã®æ¿å
¥ãåé¤ãå¦çããæ¹æ³ã«å½±é¿ãã¾ãï¼å復å¦çå
ã§ã®åæé
åã®å¤æ´ãåç
§ï¼ãfor (let i = length - 1; i >= 0; i--)
ï¼ããã¡ã½ãã㯠reduceRight()
ãfindLast()
ãfindLastIndex()
ã§ããreduce
㨠reduceRight
ã¯ãã·ã°ããã£ãè¥å¹²ç°ãªããå¸¸ã«æåã®è¦ç´ ã¾ãã¯æå¾ã®è¦ç´ ããå§ããããã§ã¯ããã¾ãããé
åã¡ã½ããã¯å¸¸ã«æ±ç¨çã§ãããé
åãªãã¸ã§ã¯ãã®å
é¨ãã¼ã¿ã«ã¯ã¢ã¯ã»ã¹ãã¾ãããé
åã®è¦ç´ ã«ã¯ length
ããããã£ãéãã¦ã¢ã¯ã»ã¹ãããã®ä½ç½®ã®è¦ç´ ãã¢ã¯ã»ã¹ããã ãã§ããã¤ã¾ããé
å風ãªãã¸ã§ã¯ãã«å¯¾ãã¦ãå¼ã³åºããã¨ãã§ãã¾ãã
const arrayLike = {
0: "a",
1: "b",
length: 2,
};
console.log(Array.prototype.join.call(arrayLike, "+")); // 'a+b'
length ããããã£ã®æ£è¦å
length
ããããã£ã¯æ°å¤ã«å¤æããã0 ãã 253 - 1 ã¾ã§ã®ç¯å²ã«åãããã¾ããNaN
㯠0
ã¨ãªãã®ã§ãlength
ãåå¨ããªãã undefined
ã§ãã£ã¦ã 0
ã¨ããå¤ãæã¤ãã®ã¨ãã¦æ±ããã¾ãã
è¨èªã¯ length
ãå®å
¨ã§ãªãæ´æ°ã«è¨å®ãããã¨ãé¿ãã¾ãããã length
ã 253 - 1 ãã大ããæ°ã«è¨å®ãããã¨ããã¹ã¦ã®çµã¿è¾¼ã¿ã¡ã½ãã㯠TypeError
ãçºçããã¾ããããããé
åã® length
ããããã£ã¯ã232 - 1 ãã大ããå¤ã«è¨å®ãããã¨ã¨ã©ã¼ãçºçããã®ã§ãã¡ã½ãããéé
åãªãã¸ã§ã¯ãã§å¼ã³åºãããªãéããå®å
¨ãªæ´æ°ã®ãããå¤ã«éãããã¨ã¯é常ããã¾ããã
Array.prototype.flat.call({}); // []
é
åã¡ã½ããã®ä¸ã«ã¯ãé
åãªãã¸ã§ã¯ãã® length
ããããã£ãè¨å®ãããã®ãããã¾ãããããã®ã¡ã½ããã¯å¸¸ã«æ£è¦åå¾ã®å¤ãè¨å®ããã®ã§ãlength
ã¯å¸¸ã«æ´æ°å¤ã«ãªãã¾ãã
const a = { length: 0.7 };
Array.prototype.push.call(a);
console.log(a.length); // 0
é
å風ãªãã¸ã§ã¯ã
é
å風ãªãã¸ã§ã¯ãã¨ã¯ãä¸è¨ã® length
ã®å¦çã§ä¾å¤ãçºçããªããªãã¸ã§ã¯ãã®ãã¨ã§ããå
·ä½çã«è¨ãã¨ããã®ãããªãªãã¸ã§ã¯ãã«ã¯å®éã« length
ããããã£ãããã0
ãã length - 1
ã¾ã§ã®æ·»åã¤ãè¦ç´ ãæã¤ãã¨ãæå¾
ããã¾ãï¼ãã¹ã¦ã®è¦ç´ ãåå¨ããããã§ã¯ãªãå ´åã¯ãæ©è½çã«çé
åã¨åçã¨ãªãã¾ãï¼ãé
åã¡ã½ãããé
å風ãªãã¸ã§ã¯ããå¦çããã¨ãã 0 ããå°ããã length - 1
ãã大ããæ´æ°ã®æ·»åã¯ç¡è¦ããã¾ãã
å¤ãã® DOM ãªãã¸ã§ã¯ãã¯ãä¾ãã° NodeList
ã HTMLCollection
ã¯é
å風ã§ããã¾ããarguments
ãªãã¸ã§ã¯ããé
å風ã§ããèªåèªèº«ã«é
åã¡ã½ããããªãã¦ãããã®é
åã¡ã½ãããå¼ã³åºããã¨ãã§ãã¾ãã
function f() {
console.log(Array.prototype.join.call(arguments, "+"));
}
f("a", "b"); // 'a+b'
ã³ã³ã¹ãã©ã¯ã¿ã¼
Array()
æ°ãã Array
ãªãã¸ã§ã¯ããçæãã¾ãã
Array[Symbol.species]
Array
ã³ã³ã¹ãã©ã¯ã¿ã¼ãè¿ãã¾ãã
Array.from()
æ°ãã Array
ã¤ã³ã¹ã¿ã³ã¹ãå復å¯è½ (iterable) ã¾ãã¯é
å風 (array-like) ãªãã¸ã§ã¯ãããçæãã¾ãã
Array.fromAsync()
éåæå復å¯è½ãå復å¯è½ãé
å風ãªãã¸ã§ã¯ããå
ã«ãæ°ãã Array
ã¤ã³ã¹ã¿ã³ã¹ã使ãã¾ãã
Array.isArray()
é
åã§ããã° true
ããé
åã§ãªããã° false
ãè¿ãã¾ãã
Array.of()
å¯å¤åã®å¼æ°ããã弿°ã®åæ°ãåã«é¢ããããæ°ãã Array
ã¤ã³ã¹ã¿ã³ã¹ãçæãã¾ãã
ãããã®ããããã£ã¯ Array.prototype
ã§å®ç¾©ããã¦ããããã¹ã¦ã® Array
ã¤ã³ã¹ã¿ã³ã¹ã§å
±æããã¾ãã
Array.prototype.constructor
ãã®ã¤ã³ã¹ã¿ã³ã¹ãªãã¸ã§ã¯ãã使ããã³ã³ã¹ãã©ã¯ã¿ã¼é¢æ°ã§ãã Array
ã¤ã³ã¹ã¿ã³ã¹ã®å ´åãåæå¤ã¯ Array
ã³ã³ã¹ãã©ã¯ã¿ã¼ã§ãã
Array.prototype[Symbol.unscopables]
ES2015 ç以åã® ECMAScript æ¨æºã«å«ã¾ãã¦ãããã with
ã«ããæã®ãã¤ã³ãã®ç®çã«ã¯ç¡è¦ãããããããã£åãå«ã¿ã¾ãã
ãããã®ããããã£ã¯ããããã® Array
ã¤ã³ã¹ã¿ã³ã¹ãèªåèªèº«ã§æã¤ããããã£ã§ãã
length
é åå ã®è¦ç´ æ°ãåæ ãã¾ãã
Array.prototype.at()
æå®ãããä½ç½®ã«ããé åã®é ç®ãè¿ãã¾ããè² ã®æ´æ°ãæå®å¯è½ã§ãæ«å°¾ã®é ç®ããæ»ãã¾ãã
Array.prototype.concat()
ãã®é åã«ä»ã®é åãå¤ãçµåãã¦æ°ããé åãè¿ãã¾ãã
Array.prototype.copyWithin()
é åå ã§é åå ã®é£ç¶ããè¦ç´ ãè¤åãã¾ãã
Array.prototype.entries()
æ°ããé åã¤ãã¬ã¼ã¿ã¼ãªãã¸ã§ã¯ããè¿ãã¾ãããã®ãªãã¸ã§ã¯ãã¯ãé åä¸ã®ããããã®ä½ç½®ã«å¯¾ãããã¼/å¤ã®çµãä¿æãã¦ãã¾ãã
Array.prototype.every()
æå®ãããã¹ã颿°ãé
åä¸ã®ãã¹ã¦ã®è¦ç´ ãæºãããå ´åã« true
ãè¿ãã¾ãã
Array.prototype.fill()
é åå ã®æå®ããéå§ä½ç½®ããçµäºä½ç½®ã¾ã§ã®è¦ç´ ãåºå®å¤ã§åãã¾ãã
Array.prototype.filter()
æå®ãããã£ã«ã¿ãªã³ã°é¢æ°ã true
ãè¿ããé
åä¸ã®è¦ç´ ãæ ¼ç´ããæ°ããé
åãçæãã¾ãã
Array.prototype.find()
æå®ãããããã¹ã颿°ãæºãããé
åã®æåã®è¦ç´ ã®å¤ãè¿ãã¾ããé©åãªè¦ç´ ãè¦ã¤ãããªãã£ãå ´å㯠undefined
ãè¿ãã¾ãã
Array.prototype.findIndex()
æå®ããããã¹ã颿°ãæºãããé
åã®æåã®è¦ç´ ã®æ·»åãè¿ãã¾ããé©åãªè¦ç´ ãè¦ã¤ãããªãã£ãå ´å㯠-1
ãè¿ãã¾ãã
Array.prototype.findLast()
æå®ãããããã¹ã颿°ãæºãããé
åã®æå¾ã®è¦ç´ ã®å¤ãè¿ãã¾ããé©åãªè¦ç´ ãè¦ã¤ãããªãã£ãå ´å㯠undefined
ãè¿ãã¾ãã
Array.prototype.findLastIndex()
æå®ããããã¹ã颿°ãæºãããé
åã®æå¾ã®è¦ç´ ã®æ·»åãè¿ãã¾ããé©åãªè¦ç´ ãè¦ã¤ãããªãã£ãå ´å㯠-1
ãè¿ãã¾ãã
Array.prototype.flat()
ãã¹ã¦ã®é¨åé åã®è¦ç´ ãæå®ãããæ·±ãã¾ã§å帰çã«é£çµããæ°ããé åãè¿ãã¾ãã
Array.prototype.flatMap()
ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãå ã®é åã®åè¦ç´ ã«é©ç¨ãããã®çµæã䏿®µéå¹³å¦åããæ°ããé åãè¿ãã¾ãã
Array.prototype.forEach()
é åä¸ã®ããããã®è¦ç´ ã«ã¤ãã¦é¢æ°ãå¼ã³åºãã¾ãã
Array.prototype.includes()
ãã®é
åãç¹å®ã®è¦ç´ ãå«ããã©ããå¤å®ãããã®çµæã true
ã¾ã㯠false
ã§è¿ãã¾ãã
Array.prototype.indexOf()
æå®ãããå¤ã¨çããå¤ãæã¤æåã®ï¼æ·»åã®ä¸çªå°ããï¼è¦ç´ ã®æ·»åãè¿ãã¾ããè¦ã¤ãããªãå ´åã-1
ãè¿ãã¾ãã
Array.prototype.join()
é åã®ãã¹ã¦ã®è¦ç´ ãçµåããæååãè¿ãã¾ãã
Array.prototype.keys()
æ°ããé åã¤ãã¬ã¼ã¿ã¼ãè¿ãã¾ãããã®ãªãã¸ã§ã¯ãã¯é åä¸ã®åæ·»åã®ãã¼ãä¿æãã¾ãã
Array.prototype.lastIndexOf()
æå®ãããå¤ã¨çããå¤ãæã¤æå¾ã® (æ·»åã®ä¸çªå¤§ãã) è¦ç´ ã®æ·»åãè¿ãã¾ããè¦ã¤ãããªãå ´åã-1
ãè¿ãã¾ãã
Array.prototype.map()
é åå ã®ãã¹ã¦ã®è¦ç´ ã«å¯¾ãã¦ä¸ãããã颿°ãå¼ã³åºãããã®çµæãæ ¼ç´ããæ°ããé åãçæãã¾ãã
Array.prototype.pop()
é åããæå¾ã®è¦ç´ ãåãé¤ããè¿å¤ã¨ãã¦è¿ãã¾ãã
Array.prototype.push()
é
åã®æå¾ã« 1 å以ä¸ã®è¦ç´ ã追å ããæ°ããé
åã® length
ãè¿ãã¾ãã
Array.prototype.reduce()
ã¢ãã¥ã ã¬ã¼ã¿ã¼ã¨é åå ã®ãã¹ã¦ã®è¦ç´ ã«å¯¾ã㦠(å·¦ããå³ã®é ã§) 颿°ãé©ç¨ããåä¸ã®å¤ã«éå ãã¾ãã
Array.prototype.reduceRight()
ã¢ãã¥ã ã¬ã¼ã¿ã¼ã¨é åå ã®ãã¹ã¦ã®è¦ç´ ã«å¯¾ã㦠(å³ããå·¦ã®é ã§) 颿°ãé©ç¨ããåä¸ã®å¤ã«éå ãã¾ãã
Array.prototype.reverse()
é åã®è¦ç´ ã®é çªãé転ããã¾ã (æåã®è¦ç´ ã¯æå¾ã«ãæå¾ã®è¦ç´ ã¯æåã«ãªãã¾ã)ã
Array.prototype.shift()
é åããæåã®è¦ç´ ãåãé¤ãããã®è¦ç´ ãè¿ãã¾ãã
Array.prototype.slice()
é åã®ä¸é¨ãåãåºãã¦æ°ããé åã¨ãã¦è¿ãã¾ãã
Array.prototype.some()
æå®ãããã¹ã颿°ãé
åä¸ã®å°ãªãã¨ã 1 åã®è¦ç´ ãæºãããå ´åã« true
ãè¿ãã¾ãã
Array.prototype.sort()
é åå ã§è¦ç´ ãæ´åããé åãè¿ãã¾ãã
Array.prototype.splice()
é åã«å¯¾ãã¦è¤æ°ã®è¦ç´ ã追å ãããåãé¤ããããã¾ãã
Array.prototype.toLocaleString()
é
åã¨ãã®è¦ç´ ã表ããã±ã¼ã«ã«å¾ã£ãæååãè¿ãã¾ããObject.prototype.toLocaleString()
ã¡ã½ããã䏿¸ããã¾ãã
Array.prototype.toReversed()
å ã®é åã夿´ããã«ãè¦ç´ ãéé ã«ä¸¦ã¹ãæ°ããé åãè¿ãã¾ãã
Array.prototype.toSorted()
å ã®é åã夿´ããã«ãè¦ç´ ãæé ã«ä¸¦ã¹ãæ°ããé åãè¿ãã¾ãã
Array.prototype.toSpliced()
å é åã夿´ãããã¨ãªããæå®ãããä½ç½®ã®è¦ç´ ãé¤å»ã¾ãã¯ç½®ãæããæ°ããé åãè¿ãã¾ãã
Array.prototype.toString()
é
åã¨ãã®è¦ç´ ã表ãæååãè¿ãã¾ããObject.prototype.toString()
ã¡ã½ããã䏿¸ããã¦ãã¾ãã
Array.prototype.unshift()
é
åã®æåã« 1 å以ä¸ã®è¦ç´ ã追å ããé
åã®å¤æ´å¾ã® length
ãè¿ãã¾ãã
Array.prototype.values()
æ°ããé åã¤ãã¬ã¼ã¿ã¼ãªãã¸ã§ã¯ããè¿ãã¾ãããã®ãªãã¸ã§ã¯ãã¯ãé åä¸ã®åæ·»åã®å¤ãä¿æãã¾ãã
Array.prototype.with()
æå®ãããä½ç½®ã®è¦ç´ ãæå®ãããå¤ã§ç½®ãæããæ°ããé åããå ã®é åã«å¤æ´ãå ãããã¨ãªãè¿ãã¾ãã
Array.prototype[Symbol.iterator]()
æ¢å®ã§ã¯ values()
颿°ãè¿ãã¾ãã
ãã®ç¯ã§ã¯ã JavaScript ã§ä¸è¬çãªé åæä½ã®ä¾ãããã¤ãç´¹ä»ãã¾ãã
ã¡ã¢: ã¾ã é åã®åºæ¬ã«æ £ãã¦ããªãå ´åã¯ãæåã« JavaScript ã®ç¬¬ä¸æ©: é å ã®é åã¨ã¯ä½ãã®èª¬æãããã³ããããé åã®æä½ã®ä»ã®ä¾ãèªãã§ã¿ã¦ãã ããã
é åã®ä½æããã§ã¯ãæ°ããé
åãä½ã 3 éãã®æ¹æ³ã示ãã¦ãã¾ããæåã®ãã®ã¯é
åãªãã©ã«è¨æ³ã使ç¨ãããã®ã§ã次㯠Array()
ã³ã³ã¹ãã©ã¯ã¿ã¼ã使ç¨ãã¦ãæå¾ã¯ String.prototype.split()
ã使ç¨ãã¦æååããé
åãæ§ç¯ãã¦ãã¾ãã
// 'fruits' é
åãé
åãªãã©ã«è¨æ³ã§ä½æããã¦ãã¾ãã
const fruits = ["ããã", "ããã"];
console.log(fruits.length);
// 2
// 'fruits2' é
åã Array() ã³ã³ã¹ãã©ã¯ã¿ã¼ã§ä½æããã¦ãã¾ãã
const fruits2 = new Array("ããã", "ããã");
console.log(fruits2.length);
// 2
// 'fruits3' é
åã String.prototype.split() ã使ç¨ãã¦ä½æããã¦ãã¾ãã
const fruits3 = "ããã, ããã".split(", ");
console.log(fruits3.length);
// 2
é
åããæååãçæ
ãã®ä¾ã§ã¯ join()
ã¡ã½ããã使ç¨ãã¦ãé
å fruits
ããæååãçæãã¦ãã¾ãã
const fruits = ["ããã", "ããã"];
const fruitsString = fruits.join(", ");
console.log(fruitsString);
// "ããã, ããã"
æ·»åã«ããé
åã®è¦ç´ ã¸ã®ã¢ã¯ã»ã¹
ãã®ä¾ã§ã¯é
å fruits
å
ã®é
ç®ã«ãé
åå
ã®ä½ç½®ãç¤ºãæ·»åãæå®ãããã¨ã§ã¢ã¯ã»ã¹ããæ¹æ³ã示ãã¦ãã¾ãã
const fruits = ["ããã", "ããã"];
// é
åã®æåã®è¦ç´ ã®æ·»åã¯å¿
ã 0 ã§ãã
fruits[0]; // ããã
// é
åã® 2 çªç®ã®è¦ç´ ã®æ·»åã¯å¿
ã 1 ã§ãã
fruits[1]; // ããã
// é
åã®æ«å°¾ã®è¦ç´ ã®æ·»åã¯ã常ã«é
åã®é·ãããã
// 1 ã ãå°ãããã®ã§ãã
fruits[fruits.length - 1]; // ããã
// é
åã®é·ãããã大ããªæ·»åã使ç¨ããã¨ã
// 'undefined' ãè¿ããã¾ãã
fruits[99]; // undefined
é
åå
ã®ã¢ã¤ãã ã®æ·»åãæ¤ç´¢
ãã®ä¾ã§ã¯ indexOf()
ã¡ã½ããã使ç¨ãã¦ãæåå "ããã"
ã®ä½ç½®ï¼æ·»åï¼ãé
å fruits
ã®ä¸ããæ¢ãã¾ãã
const fruits = ["ããã", "ããã"];
console.log(fruits.indexOf("ããã"));
// 1
é
åå
ã«ç¹å®ã®é
ç®ããããã©ãããæ¤æ»
ãã®ä¾ã§ã¯ãé
å fruits
ã "ããã"
㨠"ããããã¼"
ãå«ãã§ãããã©ããã確èªãã 2 ã¤ã®æ¹æ³ã示ãã¦ãã¾ããæå㯠includes()
ã¡ã½ããã§ã次㫠indexOf()
ã¡ã½ããã§ãæ·»åã®å¤ã -1
ã§ãªããã¨ã確èªãã¾ãã
const fruits = ["ããã", "ããã"];
fruits.includes("ããã"); // true
fruits.includes("ããããã¼"); // false
// indexOf() ã -1 ãè¿ããªãå ´åããã®é
åã¯ãã®é
ç®ãæã£ã¦ãã¾ãã
fruits.indexOf("ããã") !== -1; // true
fruits.indexOf("ããããã¼") !== -1; // false
é
åã«é
ç®ã追å
ãã®ä¾ã§ã¯ã push()
ã¡ã½ããã使ç¨ãã¦æ°ããæååãé
å fruits
ã«è¿½å ãã¦ãã¾ãã
const fruits = ["ããã", "ããã"];
const newLength = fruits.push("ã¿ãã");
console.log(fruits);
// ["ããã", "ããã", "ã¿ãã"]
console.log(newLength);
// 3
é
åããæå¾ã®é
ç®ãåãé¤ã
ãã®ä¾ã§ã¯ã pop()
ã¡ã½ããã使ç¨ãã¦é
å fruits
ããæå¾ã®é
ç®ãåãé¤ãã¦ãã¾ãã
const fruits = ["ããã", "ããã", "ã¿ãã"];
const removedItem = fruits.pop();
console.log(fruits);
// ["ããã", "ããã"]
console.log(removedItem);
// ã¿ãã
ã¡ã¢: pop()
ã¯é
åã®æå¾ã®é
ç®ãåé¤ããããã ãã«ä½¿ç¨ã§ãã¾ããé
åã®æå¾ã«ããè¤æ°ã®é
ç®ãåé¤ãããå ´åã¯ã次ã®ä¾ãåç
§ãã¦ãã ããã
ãã®ä¾ã§ã¯ splice()
ã¡ã½ããã使ç¨ãã¦ãé
å fruits
ããæå¾ã® 3 ã¤ã®é
ç®ãåãé¤ãã¦ãã¾ãã
const fruits = ["ããã", "ããã", "ãã¡ã", "ãã³ã´ã¼", "ããããã¼"];
const start = -3;
const removedItems = fruits.splice(start);
console.log(fruits);
// ["ããã", "ããã"]
console.log(removedItems);
// ["ãã¡ã", "ãã³ã´ã¼", "ããããã¼"]
é
åãæåã® N é
ç®ã¡ããã©ã«åãè©°ãã
ãã®ä¾ã§ã¯ splice()
ã¡ã½ããã¯ã使ç¨ãã¦ãé
å fruits
ãæåã® 2 é
ç®ã¡ããã©ã«åãè©°ãã¾ãã
const fruits = ["ããã", "ããã", "ãã¡ã", "ãã³ã´ã¼", "ããããã¼"];
const start = 2;
const removedItems = fruits.splice(start);
console.log(fruits);
// ["ããã", "ããã"]
console.log(removedItems);
// ["ãã¡ã", "ãã³ã´ã¼", "ããããã¼"]
é
åã®æåããé
ç®ãåãé¤ã
ãã®ä¾ã§ã¯ shift()
ã¡ã½ããã使ç¨ãã¦ãæåã®é
ç®ãé
å fruits
ããåãé¤ãã¾ãã
const fruits = ["ããã", "ããã"];
const removedItem = fruits.shift();
console.log(fruits);
// ["ããã"]
console.log(removedItem);
// ããã
ã¡ã¢: shift()
ã¯æåã®é
ç®ãé
åããåãé¤ãå ´åã«ã®ã¿ä½¿ç¨ã§ãã¾ããè¤æ°ã®é
ç®ãé
åã®å
é ããåãé¤ãå ´åã¯ã次ã®ä¾ãåç
§ãã¦ãã ããã
ãã®ä¾ã§ã¯ splice()
ã¡ã½ããã使ç¨ãã¦ãé
å fruits
ããå
é ã® 3 é
ç®ãåãé¤ãã¾ãã
const fruits = ["ããã", "ãã¡ã", "ããããã¼", "ããã", "ãã³ã´ã¼"];
const start = 0;
const deleteCount = 3;
const removedItems = fruits.splice(start, deleteCount);
console.log(fruits);
// ["ããã", "ãã³ã´ã¼"]
console.log(removedItems);
// ["ããã", "ãã¡ã", "ããããã¼"]
é
åã«æåã®ã¢ã¤ãã ã追å
ãã®ä¾ã§ã¯ unshift()
ã¡ã½ããã使ç¨ãã¦ãé
å fruits
ã®è¦ç´ 0
ã«æ°ããé
ç®ã追å ãã¾ãããããé
åã®æ°ããå
é ã®é
ç®ã«ãã¾ãã
const fruits = ["ããã", "ãã³ã´ã¼"];
const newLength = fruits.unshift("ãã¡ã");
console.log(fruits);
// ["ãã¡ã", "ããã", "ãã³ã´ã¼"]
console.log(newLength);
// 3
æ·»åãæå®ãã¦åä¸ã®é
ç®ãåãé¤ã
ãã®ä¾ã§ã¯ splice()
ã¡ã½ããã使ç¨ãã¦ãæåå "ããã"
ãé
å fruits
ããåãé¤ãã¾ãã "ããã"
ã®ä½ç½®ã®æ·»åãæå®ãã¾ãã
const fruits = ["ãã¡ã", "ããã", "ãã³ã´ã¼"];
const start = fruits.indexOf("ããã");
const deleteCount = 1;
const removedItems = fruits.splice(start, deleteCount);
console.log(fruits);
// ["ãã¡ã", "ãã³ã´ã¼"]
console.log(removedItems);
// ["ããã"]
æ·»åãæå®ãã¦è¤æ°ã®é
ç®ãåãé¤ã
ãã®ä¾ã§ã¯ splice()
ã¡ã½ããã使ç¨ãã¦ãæåå "ããã"
ããã³ "ãã¡ã"
ãé
å fruits
ããåãé¤ãã¾ãã "ããã"
ã®ä½ç½®ã®æ·»åã¨å
±ã«ãåãé¤ãé
ç®ã®ç·æ°ãæå®ãã¾ãã
const fruits = ["ããã", "ããã", "ãã¡ã", "ãã³ã´ã¼"];
const start = 1;
const deleteCount = 2;
const removedItems = fruits.splice(start, deleteCount);
console.log(fruits);
// ["ããã", "ãã³ã´ã¼"]
console.log(removedItems);
// ["ããã", "ãã¡ã"]
é
åã®è¤æ°ã®é
ç®ãç½®æ
ãã®ä¾ã§ã¯ splice()
ã¡ã½ããã使ç¨ãã¦ãé
å fruits
å
ã® 2 ã¤ã®é
ç®ãç½®ãæãã¾ãã
const fruits = ["ããã", "ããã", "ãã¡ã"];
const start = -2;
const deleteCount = 2;
const removedItems = fruits.splice(
start,
deleteCount,
"ãã³ã´ã¼",
"ããããã¼",
);
console.log(fruits);
// ["ããã", "ãã³ã´ã¼", "ããããã¼"]
console.log(removedItems);
// ["ããã", "ãã¡ã"]
é
åã®èµ°æ»
ãã®ä¾ã§ã¯ for...of
ã«ã¼ãã使ç¨ãã¦é
å fruits
ãèµ°æ»ããããããã®é
ç®ãã³ã³ã½ã¼ã«ã¸ãã°åºåãã¾ãã
const fruits = ["ããã", "ãã³ã´ã¼", "ããããã¼"];
for (const fruit of fruits) {
console.log(fruit);
}
// ããã
// ãã³ã´ã¼
// ããããã¼
ãã ã for...of
ã¯é
åãèµ°æ»ããæ°ã
ã®æ¹æ³ã®ä¸ã¤ã«ããã¾ãããä»ã®æ¹æ³ã¯ã«ã¼ãã¨å復å¦çãåç
§ãããã every()
, filter()
, flatMap()
, map()
, reduce()
, reduceRight()
ã®åã¡ã½ããã®ããã¥ã¡ã³ããåç
§ããããã¾ã forEach()
ã¡ã½ããã使ç¨ãã¦ããæ¬¡ã®ä¾ãåç
§ããããã¦ãã ããã
ãã®ä¾ã§ã¯ forEach()
ã¡ã½ããã使ç¨ãã¦ãé
å fruits
ã®ããããã®è¦ç´ ã«å¯¾ãã¦é¢æ°ãå¼ã³åºãã¦ãã¾ãããã®é¢æ°ã§ã¯ããããã®é
ç®ãããã®é
ç®ã®æ·»åã®çªå·ã¨å
±ã«ã³ã³ã½ã¼ã«ã¸ãã°åºåãã¾ãã
const fruits = ["ããã", "ãã³ã´ã¼", "ããããã¼"];
fruits.forEach((item, index, array) => {
console.log(item, index);
});
// ããã 0
// ãã³ã´ã¼ 1
// ããããã¼ 2
è¤æ°ã®é
åãçµå
ãã®ä¾ã§ã¯ concat()
ã¡ã½ããã使ç¨ãã¦ãé
å fruits
ãé
å moreFruits
ã¨çµååãæ°ããé
å combinedFruits
ãçæãã¾ãã fruits
㨠moreFruits
ã¯å¤æ´ãããªããã¨ã«æ³¨æãã¦ãã ããã
const fruits = ["ããã", "ããã", "ãã¡ã"];
const moreFruits = ["ãã³ã´ã¼", "ããããã¼"];
const combinedFruits = fruits.concat(moreFruits);
console.log(combinedFruits);
// ["ããã", "ããã", "ãã¡ã", "ãã³ã´ã¼", "ããããã¼"]
// é
å 'fruits' ã¯å¤æ´ãããªãã¾ã¾ã§ãã
console.log(fruits);
// ["ããã", "ããã", "ãã¡ã"]
// é
å 'moreFruits' ã夿´ãããªãã¾ã¾ã§ãã
console.log(moreFruits);
// ["ãã³ã´ã¼", "ããããã¼"]
é
åã®ã³ãã¼
ãã®ä¾ã§ã¯ãæ¢åã®é
å fruits
ããæ°ããé
åãçæããæ¹æ³ã 3 éã示ãã¾ããæåã®ãã®ã¯ã¹ãã¬ããæ§æã使ç¨ãããã®ã§ã次㯠from()
ã¡ã½ããã使ç¨ãããã®ããã®æ¬¡ã¯ slice()
ã¡ã½ããã使ç¨ãããã®ã§ãã
const fruits = ["ãã¡ã", "ãã³ã´ã¼"];
// ã¹ãã¬ããæ§æã§ã³ãã¼ã使ãã¾ãã
const fruitsCopy = [...fruits];
// ["ãã¡ã", "ãã³ã´ã¼"]
// from() ã¡ã½ããã§ã³ãã¼ã使ãã¾ãã
const fruitsCopy2 = Array.from(fruits);
// ["ãã¡ã", "ãã³ã´ã¼"]
// slice() ã¡ã½ããã§ã³ãã¼ã使ãã¾ãã
const fruitsCopy3 = fruits.slice();
// ["ãã¡ã", "ãã³ã´ã¼"]
çµã¿è¾¼ã¿ã®é
åã³ãã¼æä½ï¼ã¹ãã¬ããæ§æ, Array.from()
, Array.prototype.slice()
, Array.prototype.concat()
ï¼ã¯ãã¹ã¦ãã·ã£ãã¼ã³ãã¼ãçæãã¾ããé
åã®ãã£ã¼ãã³ãã¼ãå¾ãå ´åã¯ã JSON.stringify()
ã§é
åã JSON æååã«å¤æãã JSON.parse()
ã§ãã®æååãæ°ããé
åã«æ»ãã°ãå
ã®é
åããå®å
¨ã«ç¬ç«ããæ°ããé
åãã§ãã¾ãã
const fruitsDeepCopy = JSON.parse(JSON.stringify(fruits));
ã¾ãã structuredClone()
ã¡ã½ããã使ç¨ãã¦ãã£ã¼ãã³ãã¼ã使ãããã¨ãã§ãã¾ããããã¯ãã½ã¼ã¹å
ã®ç§»è²å¯è½ãªãã¸ã§ã¯ãããã³ãã¼ããã®ã§ã¯ãªããæ°ããã³ãã¼ã«ç§»è²ã§ããå©ç¹ãããã¾ãã
æå¾ã«ãæ¢åã®é åãæ°ãã夿°ã«ä»£å ¥ãã¦ããé åããã®è¦ç´ ã®ã³ãã¼ã¯ä½æãããªããã¨ãçè§£ãããã¨ãéè¦ã§ããã¤ã¾ããå ã®é åã®ååã¨æ°ãã夿°ã®ååã¯ãã¾ã£ããåããªãã¸ã§ã¯ãã®ååã«éãã¾ããï¼ãããã£ã¦ã常ã«å³å¯ç価ã§ããã¨è©ä¾¡ããã¾ãï¼ããããã£ã¦ãå ã®é åã®å¤ãæ°ãã夿°ã®å¤ã«ä½ããã®å¤æ´ãå ããã¨ãããçæ¹ã夿´ããã¾ãã
const fruits = ["ãã¡ã", "ãã³ã´ã¼"];
const fruitsAlias = fruits;
// 'fruits' 㨠'fruitsAlias' ã¯åããªãã¸ã§ã¯ãã¨ãªããå³å¯ç価ã«ãªãã¾ãã
fruits === fruitsAlias; // true
// é
å 'fruits' ã夿´ããã¨ã 'fruitsAlias' ãå¤åãã¾ãã
fruits.unshift("ããã", "ããã");
console.log(fruits);
// ['ããã', 'ããã', 'ãã¡ã', 'ãã³ã´ã¼']
console.log(fruitsAlias);
// ['ããã', 'ããã', 'ãã¡ã', 'ãã³ã´ã¼']
äºæ¬¡å
é
åã®çæ
以ä¸ã§ã¯ãæååã®äºæ¬¡å
é
åã¨ãã¦ãã§ã¹ç¤ãçæãã¦ãã¾ããæåã®åã㯠'p'
ã board[6][4]
ãã board[4][4]
ã«ã³ãã¼ãããã¨ã§è¡ãã¾ããå¤ãä½ç½® [6][4]
ã¯ç©ºç½ã«ãã¾ãã
const board = [
["R", "N", "B", "Q", "K", "B", "N", "R"],
["P", "P", "P", "P", "P", "P", "P", "P"],
[" ", " ", " ", " ", " ", " ", " ", " "],
[" ", " ", " ", " ", " ", " ", " ", " "],
[" ", " ", " ", " ", " ", " ", " ", " "],
[" ", " ", " ", " ", " ", " ", " ", " "],
["p", "p", "p", "p", "p", "p", "p", "p"],
["r", "n", "b", "q", "k", "b", "n", "r"],
];
console.log(`${board.join("\n")}\n\n`);
// ãã³ã°ã®åã®ãã¼ã³ã 2 ã¤åã¸ç§»å
board[4][4] = board[6][4];
board[6][4] = " ";
console.log(board.join("\n"));
åºåã示ãã¾ãã
R,N,B,Q,K,B,N,R P,P,P,P,P,P,P,P , , , , , , , , , , , , , , , , , , , , , , , , , , , , p,p,p,p,p,p,p,p r,n,b,q,k,b,n,r R,N,B,Q,K,B,N,R P,P,P,P,P,P,P,P , , , , , , , , , , , , , , , , , ,p, , , , , , , , , , p,p,p,p, ,p,p,p r,n,b,q,k,b,n,ré åã使ã£ã¦å¤ã®ã»ããã表ã«ãã
const values = [];
for (let x = 0; x < 10; x++) {
values.push([2 ** x, 2 * x ** 2]);
}
console.table(values);
çµæã¯æ¬¡ã®ããã«ãªãã¾ãã
// æåã®åã¯æ·»åã§ã 0 1 0 1 2 2 2 4 8 3 8 18 4 16 32 5 32 50 6 64 72 7 128 98 8 256 128 9 512 162ç §åçµæã使ç¨ãã¦é åã使
æ£è¦è¡¨ç¾ (RegExp
) ã¨æååã®ç
§åçµæããé
åãçæãããã¨ãã§ãã¾ãããã®é
åã«ã¯ãããããã£ã¨ãä¸è´ãããã®ã«é¢ããæ
å ±ãæä¾ããè¦ç´ ãæã¡ã¾ãããã®ãããªé
å㯠RegExp.prototype.exec()
ã String.prototype.match()
ããè¿ããã¾ãã
ä¾ãã°ã次ã®ããã«ãªãã¾ãã
// 1 æåã® d ã¨ãç¶ã 1 æå以ä¸ã® b ã¨ãç¶ã 1 æåã® d ã«ä¸è´ãã¾ã
// ä¸è´ãã b ããã³ããã«ç¶ã d ãè¨æ¶ãã¾ã
// 大æåå°æåã¯åºå¥ãã¾ãã
const myRe = /d(b+)(d)/i;
const execResult = myRe.exec("cdbBdbsbz");
console.log(execResult.input); // 'cdbBdbsbz'
console.log(execResult.index); // 1
console.log(execResult); // [ "dbBd", "bB", "d" ]
ç
§åçµæã«ã¤ãã¦ã®è©³ããæ
å ±ã¯ã RegExp.prototype.exec()
ããã³ String.prototype.match()
ã®ãã¼ã¸ãåç
§ãã¦ãã ããã
å復å¦çã¡ã½ããã¯ãå¼ã³åºãããé
åã夿´ãã¾ããããcallbackFn
ã¨ãã¦æä¾ããã颿°ã¯å¤æ´ãããã¨ãã§ãã¾ããè¦ãã¦ããã¹ãéè¦ãªååã¯ã0 ãã arrayLength - 1
ã¾ã§ã®è¦ç´ ã®ã¿ãåç
§ãããã¨ãããã¨ã§ããããã§ãarrayLength
ã¯é
åã¡ã½ãããæåã«å¼ã³åºãããæç¹ã§ã®é
åã®é·ãã§ãããã³ã¼ã«ããã¯ã«æ¸¡ãããè¦ç´ ã¯ããã®è¦ç´ ãåç
§ãããæç¹ã§ã®å¤ã§ãããããã£ã¦ã
callbackFn
ã¯ãå復å¦çã¡ã½ããã®å¼ã³åºããéå§ãããéã«ãé
åã®åæé·ãè¶
ãã¦è¿½å ãããè¦ç´ ãå¦çãã¾ãããcallbackFn
ãå度å¼ã³åºããããã¨ã¯ããã¾ãããcallbackFn
ã«ãã£ã¦å¤æ´ãããå ´åãcallbackFn
ã«æ¸¡ãããå¤ã¯ããã®è¦ç´ ãå¦çãããæç¹ã§ã®å¤ã¨ãªãã¾ãã é¤å»ãããè¦ç´ ã¯å¦çããã¾ãããè¦å: ä¸è¨ã®ãããªåæé²è¡ã®å¤æ´ã¯ãçè§£ãã«ããã³ã¼ãã«ã¤ãªããå¯è½æ§ãé«ããä¸è¬çã«é¿ããã¹ãã§ãï¼ç¹å¥ãªå ´åãé¤ãï¼ã
次ã®ä¾ã§ã¯ãforEach
ã¡ã½ãããä¾ã¨ãã¦ä½¿ç¨ãã¦ãã¾ãããä»ã«ãæé ã§è¦ç´ ãå·¡åããã¡ã½ããã§ããã°ãåãããã«åä½ãã¾ãã æåã®ãã«ãã¼é¢æ°ãå®ç¾©ãã¾ãã
function testSideEffect(effect) {
const arr = ["e1", "e2", "e3", "e4"];
arr.forEach((elem, index, arr) => {
console.log(`é
å: [${arr.join(", ")}], æ·»å: ${index}, è¦ç´ : ${elem}`);
effect(arr, index);
});
console.log(`æçµçãªé
å: [${arr.join(", ")}]`);
}
ã¾ã å¦çããã¦ããªãè¦ç´ ã夿´ããå ´åãè¦ç´ ã«å°éããã¨ãã«è¦ãã¾ãã
testSideEffect((arr, index) => {
if (index + 1 < arr.length) arr[index + 1] += "*";
});
// é
å: [e1, e2, e3, e4], æ·»å: 0, è¦ç´ : e1
// é
å: [e1, e2*, e3, e4], æ·»å: 1, è¦ç´ : e2*
// é
å: [e1, e2*, e3*, e4], æ·»å: 2, è¦ç´ : e3*
// é
å: [e1, e2*, e3*, e4*], æ·»å: 3, è¦ç´ : e4*
// æçµçãªé
å: [e1, e2*, e3*, e4*]
æ¢ã«å¦çããä½ç½®ã®è¦ç´ ã夿´ãã¦ããå復å¦çããæåã¯å¤ããã¾ããããé åã¯ãã®å¾ã§ç°ãªã£ããã®ã«ãªãã¾ãã
testSideEffect((arr, index) => {
if (index > 0) arr[index - 1] += "*";
});
// é
å: [e1, e2, e3, e4], æ·»å: 0, è¦ç´ : e1
// é
å: [e1, e2, e3, e4], æ·»å: 1, è¦ç´ : e2
// é
å: [e1*, e2, e3, e4], æ·»å: 2, è¦ç´ : e3
// é
å: [e1*, e2*, e3, e4], æ·»å: 3, è¦ç´ : e4
// æçµçãªé
å: [e1*, e2*, e3*, e4]
æªå¦çã®è¦ç´ ã«ãåæé åã®é·ããããå°ããè¦ç´ ã n åæ¿å ¥ããã¨ããããã®è¦ç´ ãå¦çæ¸ã¿ã«ãªãã¾ããããã§åæé åã®é·ããè¶ ããæ·»åãæã¤ããã«ãªã£ãå ã®é åã®æå¾ã® n åã®è¦ç´ ã¯ãå¦çããã¾ããã
testSideEffect((arr, index) => {
if (index === 1) arr.splice(2, 0, "new");
});
// é
å: [e1, e2, e3, e4], æ·»å: 0, è¦ç´ : e1
// é
å: [e1, e2, e3, e4], æ·»å: 1, è¦ç´ : e2
// é
å: [e1, e2, new, e3, e4], æ·»å: 2, è¦ç´ : new
// é
å: [e1, e2, new, e3, e4], æ·»å: 3, è¦ç´ : e3
// æçµçãªé
å: [e1, e2, new, e3, e4]
// e4 is not visited because it now has index 4
é åã®æåã®è¦ç´ æ°ããã大ããªæ·»åãæã¤è¦ç´ ã n åæ¿å ¥ãã¦ãããããã®è¦ç´ ãå¦çããããã¨ã¯ããã¾ããã
testSideEffect((arr) => arr.push("new"));
// é
å: [e1, e2, e3, e4], æ·»å: 0, è¦ç´ : e1
// é
å: [e1, e2, e3, e4, new], æ·»å: 1, è¦ç´ : e2
// é
å: [e1, e2, e3, e4, new, new], æ·»å: 2, è¦ç´ : e3
// é
å: [e1, e2, e3, e4, new, new, new], æ·»å: 3, è¦ç´ : e4
// æçµçãªé
å: [e1, e2, e3, e4, new, new, new, new]
æ¢ã«å¦çããè¦ç´ ã« n åã®è¦ç´ ãæ¿å ¥ãã¦ããããããå¦çããããã¨ã¯ããã¾ããããæ®ãã®è¦ç´ ã n ååå¾ãã«ããããããç¾å¨ã®è¦ç´ ã¨ããã®åã® n - 1 åã®è¦ç´ ãåã³å¦çããããã¨ã«ãªãã¾ãã
testSideEffect((arr, index) => arr.splice(index, 0, "new"));
// é
å: [e1, e2, e3, e4], æ·»å: 0, è¦ç´ : e1
// é
å: [new, e1, e2, e3, e4], æ·»å: 1, è¦ç´ : e1
// é
å: [new, new, e1, e2, e3, e4], æ·»å: 2, è¦ç´ : e1
// é
å: [new, new, new, e1, e2, e3, e4], æ·»å: 3, è¦ç´ : e1
// æçµçãªé
å: [new, new, new, new, e1, e2, e3, e4]
// e1ã¯ã常ã«ã·ããããã¯ããããããå¦çããç¶ãã¾ãã
æªå¦çã®è¦ç´ ãã n åã®è¦ç´ ãåé¤ããã¨ããããã¯ãã¯ãå¦çãããªããªãã¾ããé
åã縮å°ãããããæå¾ã® n åã®å復å¦çã§ã¯ãç¯å²å¤ã®æ·»åãå¦çããã¾ããã¡ã½ãããåå¨ããªãè¦ç´ ãç¡è¦ããå ´åï¼é
åã¡ã½ããã¨ç©ºã®ã¹ããããåç
§ï¼ãæå¾ã® n åã®å復å¦çã¯ã¹ãããããã¾ããããã§ãªããã°ãããã㯠undefined
ã¨ãªãã¾ãã
testSideEffect((arr, index) => {
if (index === 1) arr.splice(2, 1);
});
// é
å: [e1, e2, e3, e4], æ·»å: 0, è¦ç´ : e1
// é
å: [e1, e2, e3, e4], æ·»å: 1, è¦ç´ : e2
// é
å: [e1, e2, e4], æ·»å: 2, è¦ç´ : e4
// æçµçãªé
å: [e1, e2, e4]
// ç¯å²å¤ãªã®ã§è¦ç´ 3 ã¯å¦çãã¾ããã
// Compare this with find(), which treats nonexistent indexes as undefined:
const arr2 = ["e1", "e2", "e3", "e4"];
arr2.find((elem, index, arr) => {
console.log(`é
å: [${arr.join(", ")}], æ·»å: ${index}, è¦ç´ : ${elem}`);
if (index === 1) arr.splice(2, 1);
return false;
});
// é
å: [e1, e2, e3, e4], æ·»å: 0, è¦ç´ : e1
// é
å: [e1, e2, e3, e4], æ·»å: 1, è¦ç´ : e2
// é
å: [e1, e2, e4], æ·»å: 2, è¦ç´ : e4
// é
å: [e1, e2, e4], æ·»å: 3, è¦ç´ : undefined
æ¢ã«å¦çããè¦ç´ ãã n åã®è¦ç´ ãåé¤ãã¦ããããããåé¤ãããåã«å¦çããã¦ããã¨ããäºå®ã¯å¤ããã¾ãããé
åã縮å°ããããããç¾å¨ã®è¦ç´ ã®æ¬¡ã® n åã®è¦ç´ ã¯ã¹ãããããã¾ãããã®ã¡ã½ãããåå¨ããªãæ·»åãç¡è¦ããå ´åã¯ãæå¾ã® n åã®å復å¦çãã¹ãããããã¾ããããã§ãªãå ´åã¯ãundefined
ãè¿ããã¾ãã
testSideEffect((arr, index) => arr.splice(index, 1));
// é
å: [e1, e2, e3, e4], æ·»å: 0, è¦ç´ : e1
// e2 ã¯å¦çãããªããe2 ã®è¦ç´ 㯠0 ã¨ãªããæ¢ã«å¦çããã¦ãããã
// é
å: [e2, e3, e4], æ·»å: 1, è¦ç´ : e3
// e4 ã¯å¦çãããªããe4 ã®è¦ç´ 㯠1 ã¨ãªããæ¢ã«å¦çããã¦ãããã
// æçµçãªé
å: [e2, e4]
// æ·»å 2 ã¯ç¯å²å¤ãªã®ã§ãã¢ã¯ã»ã¹ãããªã
// find() ã¯ãåå¨ããªãè¦ç´ ã undefined ã¨ãã¦æ±ãã¾ããããã¨æ¯è¼ãã¦ãã ããã
const arr2 = ["e1", "e2", "e3", "e4"];
arr2.find((elem, index, arr) => {
console.log(`é
å: [${arr.join(", ")}], æ·»å: ${index}, è¦ç´ : ${elem}`);
arr.splice(index, 1);
return false;
});
// é
å: [e1, e2, e3, e4], æ·»å: 0, è¦ç´ : e1
// é
å: [e2, e3, e4], æ·»å: 1, è¦ç´ : e3
// é
å: [e2, e4], æ·»å: 2, è¦ç´ : undefined
// é
å: [e2, e4], æ·»å: 3, è¦ç´ : undefined
æ·»åã®éé ã§å復å¦çããã¡ã½ããã§ã¯ãæ¿å ¥ã«ããè¦ç´ ãã¹ããããããåé¤ã«ããè¦ç´ ãè¤æ°åã¢ã¯ã»ã¹ããã¾ãã ä¸è¨ã®ã³ã¼ããèªåã§èª¿æ´ãã¦ã广ã確èªãã¦ãã ããã
仿§æ¸ ãã©ã¦ã¶ã¼ã®äºææ§ é¢é£æ å ±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