æ¬ç« ä»ç»æç´¢å¼å¼æåºçæ°æ®éåãå
æ¬æ°ç»åç±»æ°ç»ç»æï¼å¦ Array
对象å TypedArray
对象ã
æ°ç»æ¯ç±åç§°åç´¢å¼å¼ç¨ç弿æçæåºå表ã
ä¾å¦ï¼èèä¸ä¸ªå为 emp
çæ°ç»ï¼å®å
嫿æ°åéåç¼å·ç´¢å¼çéåå§åãæä»¥ emp[0]
æ¯ 0 å·åå·¥ï¼emp[1]
æ¯ 1 å·åå·¥ï¼ä»¥æ¤ç±»æ¨ã
JavaScript 䏿²¡ææç¡®çæ°ç»æ°æ®ç±»åã使¯ï¼ä½ å¯ä»¥ä½¿ç¨é¢å®ä¹ç Array
对象åå
¶æ¹æ³æ¥å¤çåºç¨ç¨åºä¸çæ°ç»ãArray
对象å
·æä»¥åç§æ¹å¼æä½æ°ç»çæ¹æ³ï¼ä¾å¦è¿æ¥ãå转åæåºã宿ä¸ä¸ªç¨äºç¡®å®æ°ç»é¿åº¦ç屿§åç¨äºæ£å表达å¼çå
¶ä»å±æ§ã
å¨è¿ç¯æç« ä¸ï¼æä»¬å°ä¸æ³¨äºæ°ç»ï¼ä½è®¸å¤ç¸åçæ¦å¿µä¹éç¨äºç±»ååæ°ç»ï¼å 为æ°ç»åç±»ååæ°ç»å ±äº«è®¸å¤ç±»ä¼¼çæ¹æ³ãå ³äºç±»ååæ°ç»çæ´å¤ä¿¡æ¯ï¼è¯·åè§ç±»ååæ°ç»åèã
å建æ°ç»ä»¥ä¸è¯å¥å建äºçæçæ°ç»ï¼
const arr1 = new Array(element0, element1, /* ⦠,*/ elementN);
const arr2 = Array(element0, element1, /* ⦠,*/ elementN);
const arr3 = [element0, element1, /* ⦠,*/ elementN];
element0, element1, â¦, elementN
æ¯æ°ç»å
ç´ çå¼å表ã彿å®è¿äºå¼æ¶ï¼æ°ç»å°ç¨å®ä»¬ä½ä¸ºæ°ç»çå
ç´ åå§åãæ°ç»ç length
屿§è¢«è®¾ç½®ä¸ºåæ°çæ°éã
æ¬å·è¯æ³ç§°ä¸ºâæ°ç»åé¢éâæâæ°ç»åå§åå¼âã宿¯å ¶ä»å½¢å¼çæ°ç»å建æ´çï¼å æ¤é常æ¯é¦éãè¯¦è§æ°ç»åé¢éã
为äºå建ä¸ä¸ªé¿åº¦ä¸ä¸º 0ï¼ä½æ¯å没æä»»ä½å ç´ çæ°ç»ï¼å¯é以ä¸ä»»ä½ä¸ç§æ¹å¼ï¼
// è¿ç§æ¹å¼...
const arr1 = new Array(arrayLength);
// ...ä¸è¿ç§æ¹å¼ä¼å½¢æç¸åæ°ç»
const arr2 = Array(arrayLength);
// è¿ä¸ªææä¹ä¸æ ·
const arr3 = [];
arr3.length = arrayLength;
夿³¨ï¼ 以ä¸ä»£ç ï¼arrayLength
å¿
须为ä¸ä¸ª Number
ãå¦åï¼å°ä¼å建ä¸ä¸ªåªæå个å
ç´ ï¼å
嫿ä¾çå¼ï¼çæ°ç»ãè°ç¨ arr.length
ä¼è¿å arrayLength
ï¼ä½æ°ç»ä¸å
å«ä»»ä½å
ç´ ãfor...in
循ç¯å¨æ°ç»ä¸æ¾ä¸å°ä»»ä½å±æ§ã
é¤äºä¸é¢æç¤ºçæ°å®ä¹çåéå¤ï¼æ°ç»è¿å¯ä»¥è¢«èµå¼ä¸ºæ°å¯¹è±¡æç°æå¯¹è±¡ç屿§ï¼
const obj = {};
// â¦
obj.prop = [element0, element1, /* ⦠,*/ elementN];
// æ
const obj = { prop: [element0, element1, /* ⦠,*/ elementN] };
å¦æä½ å¸æç¨å个å
ç´ åå§åä¸ä¸ªæ°ç»ï¼èè¿ä¸ªå
ç´ æ°å¥½åæ¯ Number
ï¼é£ä¹ä½ å¿
é¡»ä½¿ç¨æ¬å·è¯æ³ãå½å个 Number
ä¼ éç» Array()
æé 彿°æ¶ï¼å°ä¼è¢«è§£é为 arrayLength
ï¼å¹¶éå个å
ç´ ã
// å建ä¸ä¸ªåªæå¯ä¸å
ç´ çæ°ç»ï¼æ°å 42ã
const arr = [42];
// å建ä¸ä¸ªæ²¡æå
ç´ çæ°ç»ï¼ä¸æ°ç»çé¿åº¦è¢«è®¾ç½®æ 42ã
const arr = Array(42);
// ä¸é¢ç代ç ä¸ä¸é¢ç代ç çä»·ï¼
const arr = [];
arr.length = 42;
妿 N
䏿¯ä¸ä¸ªæ´æ°ï¼è°ç¨ Array(N)
å°ä¼æ¥ RangeError
é误ï¼ä¸é¢çä¾å说æäºè¿ç§è¡ä¸ºï¼
const arr = Array(9.3); // RangeError: Invalid array length
å¦æä½ éè¦å建任æç±»åçåå ç´ æ°ç»ï¼å®å ¨çæ¹å¼æ¯ä½¿ç¨æ°ç»åé¢éãæè å¨åæ°ç»æ·»å å个å ç´ ä¹åå å建ä¸ä¸ªç©ºçæ°ç»ã
ä½ ä¹å¯ä»¥ä½¿ç¨ Array.of
éææ¹æ³æ¥å建å
å«å个å
ç´ çæ°ç»ã
const wisenArray = Array.of(9.3); // wisenArray åªå
å«ä¸ä¸ªå
ç´ ï¼9.3
å¼ç¨æ°ç»å
ç´
å 为å ç´ ä¹æ¯å±æ§ï¼ä½ å¯ä»¥ä½¿ç¨å±æ§è®¿é®å¨æ¥è®¿é®ãåè®¾ä½ å®ä¹äºä»¥ä¸æ°ç»ï¼
const myArray = ["Wind", "Rain", "Fire"];
ä½ å¯ä»¥å°æ°ç»ç第ä¸ä¸ªå
ç´ å¼ç¨ä¸º myArray[0]
ï¼å°æ°ç»ç第äºä¸ªå
ç´ å¼ç¨ä¸º myArray[1]
ï¼çç...å
ç´ çç´¢å¼ä»é¶å¼å§ã
夿³¨ï¼ ä½ ä¹å¯ä»¥ä½¿ç¨å±æ§è®¿é®å¨æ¥è®¿é®æ°ç»çå ¶ä»å±æ§ï¼å°±åå¯¹è±¡ä¸æ ·ã
const arr = ["one", "two", "three"];
arr[2]; // three
arr["length"]; // 3
å¡«å
æ°ç»
ä½ å¯ä»¥éè¿ç»æ°ç»å ç´ èµå¼æ¥å¡«å æ°ç»ï¼ä¾å¦ï¼
const emp = [];
emp[0] = "Casey Jones";
emp[1] = "Phil Lesh";
emp[2] = "August West";
夿³¨ï¼ å¦æä½ å¨ä»¥ä¸ä»£ç ä¸ç»æ°ç»è¿ç®ç¬¦çæ¯ä¸ä¸ªéæ´åæ°å¼ï¼é£ä¹å®å°ä½ä¸ºä¸ä¸ªè¡¨ç¤ºæ°ç»ç对象ç屿§å建ï¼è䏿¯æ°ç»çå ç´ ã
const arr = [];
arr[3.4] = "Oranges";
console.log(arr.length); // 0
console.log(Object.hasOwn(arr, 3.4)); // true
ä½ ä¹å¯ä»¥å¨å建æ°ç»çæ¶åå»å¡«å å®ï¼
const myArray = new Array("Hello", myVar, 3.14159);
// æ
const myArray = ["Mango", "Apple", "Orange"];
çè§£ length
å¨å®ç°å±é¢ï¼JavaScript å®é 䏿¯å°å ç´ ä½ä¸ºæ åçå¯¹è±¡å±æ§æ¥åå¨ï¼ææ°ç»ç´¢å¼ä½ä¸ºå±æ§åã
length
屿§æ¯ç¹æ®çï¼å¦æå卿åä¸ä¸ªå
ç´ ï¼åå
¶å¼æ»æ¯å¤§äºå
¶ç´¢å¼çæ£æ´æ°ï¼å¨ä¸é¢ç示ä¾ä¸ï¼'Dusty'
çç´¢å¼æ¯ 30
ï¼æä»¥ cats.length
è¿å 30 + 1
ï¼ã
è®°ä½ï¼JavaScript æ°ç»ç´¢å¼æ¯åºäº 0 çï¼å®ä»¬ä» 0
å¼å§ï¼è䏿¯ 1
ãè¿æå³ç length
屿§å°æ¯æå¤§çç´¢å¼å¼å¤§ 1ï¼
const cats = [];
cats[30] = ["Dusty"];
console.log(cats.length); // 31
ä½ ä¹å¯ä»¥ç» length
屿§èµå¼ã
åä¸ä¸ªå°äºæ°ç»å
ç´ æ°éçå¼å°æªææ°ç»ï¼å 0
ä¼å½»åºæ¸
空æ°ç»ï¼
const cats = ["Dusty", "Misty", "Twiggy"];
console.log(cats.length); // 3
cats.length = 2;
console.log(cats); // [ 'Dusty', 'Misty' ] - Twiggy å·²ç»è¢«ç§»é¤äº
cats.length = 0;
console.log(cats); // è¾åº []ï¼ç«åç§°çæ°ç»ç°å¨å·²ç»ç©ºäº
cats.length = 3;
console.log(cats); // è¾åº [ <3 empty items> ]
éåæ°ç»
ä¸ç§å¸¸è§çæä½æ¯éåæ°ç»çå¼ï¼ä»¥æç§æ¹å¼å¤çæ¯ä¸ªå¼ãæç®åçæ¹æ³å¦ä¸ï¼
const colors = ["red", "green", "blue"];
for (let i = 0; i < colors.length; i++) {
console.log(colors[i]);
}
å¦æä½ ç¡®å®æ°ç»ä¸æ²¡æä¸ä¸ªå
ç´ æ±å¼ä¸º false
ï¼ä¾å¦ï¼å¦æä½ çæ°ç»åªå
å« DOM èç¹ï¼ï¼ä½ å¯ä»¥éæ©ä¸ä¸ªæ´é«æçåæ³åï¼
const divs = document.getElementsByTagName("div");
for (let i = 0, div; (div = divs[i]); i++) {
/* 以æç§æ¹å¼å¤ç div */
}
è¿é¿å
äºæ£æ¥æ°ç»é¿åº¦çå¼éï¼å¹¶ç¡®ä¿ div
åé卿¯æ¬¡å¾ªç¯æ¶é½è¢«éæ°èµå¼ç»å½å项ï¼ä»èå¢å äºä¾¿å©æ§ã
forEach()
æ¹æ³æä¾äºéåæ°ç»å
ç´ çå
¶ä»æ¹æ³ï¼
const colors = ["red", "green", "blue"];
colors.forEach((color) => console.log(color));
// red
// green
// blue
ä¼ éç» forEach
ç彿°å¯¹æ°ç»ä¸çæ¯ä¸ªå
ç´ æ§è¡ä¸æ¬¡ï¼æ°ç»å
ç´ ä½ä¸ºåæ°ä¼ éç»è¯¥å½æ°ãæªèµå¼çå¼ä¸ä¼å¨ forEach
循ç¯è¿ä»£ã
注æï¼å¨æ°ç»å®ä¹æ¶çç¥çå
ç´ ä¸ä¼å¨ forEach
éåæ¶è¢«ååºï¼ä½æ¯æå¨èµå¼ä¸º undefined
çå
ç´ æ¯ä¼è¢«ååºçï¼
const sparseArray = ["first", "second", , "fourth"];
sparseArray.forEach((element) => {
console.log(element);
});
// first
// second
// fourth
if (sparseArray[2] === undefined) {
console.log("sparseArray[2] æ¯ undefined"); // true
}
const nonsparseArray = ["first", "second", undefined, "fourth"];
nonsparseArray.forEach((element) => {
console.log(element);
});
// first
// second
// undefined
// fourth
ç±äº JavaScript å
ç´ è¢«ä¿å为æ åå¯¹è±¡å±æ§ï¼å æ¤ä¸å»ºè®®ä½¿ç¨ for...in
循ç¯éå JavaScript æ°ç»ï¼å 为æ®éå
ç´ åææå¯æä¸¾å±æ§é½å°è¢«ååºã
Array
对象å
·æä¸åæ¹æ³ï¼
concat()
æ¹æ³è¿æ¥ä¸¤ä¸ªæå¤ä¸ªæ°ç»å¹¶è¿åä¸ä¸ªæ°çæ°ç»ã
let myArray = ["1", "2", "3"];
myArray = myArray.concat("a", "b", "c");
// myArray ç°å¨æ¯ ["1", "2", "3", "a", "b", "c"]
join()
æ¹æ³å°æ°ç»ä¸çææå
ç´ è¿æ¥æä¸ä¸ªå符串ã
const myArray = ["Wind", "Rain", "Fire"];
const list = myArray.join(" - "); // list ç°å¨æ¯ "Wind - Rain - Fire"
push()
æ¹æ³å¨æ°ç»æ«å°¾æ·»å ä¸ä¸ªæå¤ä¸ªå
ç´ ï¼å¹¶è¿åæ°ç»æä½åç length
ã
const myArray = ["1", "2"];
myArray.push("3"); // myArray ç°å¨æ¯ ["1", "2", "3"]
pop()
æ¹æ³ä»æ°ç»ç§»åºæåä¸ä¸ªå
ç´ ï¼å¹¶è¿å该å
ç´ ã
const myArray = ["1", "2", "3"];
const last = myArray.pop();
// myArray ç°å¨æ¯ ["1", "2"]ï¼last 为 "3"
shift()
æ¹æ³ä»æ°ç»ç§»åºç¬¬ä¸ä¸ªå
ç´ ï¼å¹¶è¿å该å
ç´ ã
const myArray = ["1", "2", "3"];
const first = myArray.shift();
// myArray ç°å¨æ¯ ["2", "3"]ï¼first 为 "1"
unshift()
æ¹æ³å¨æ°ç»å¼å¤´æ·»å ä¸ä¸ªæå¤ä¸ªå
ç´ ï¼å¹¶è¿åæ°ç»çæ°é¿åº¦ã
const myArray = ["1", "2", "3"];
myArray.unshift("4", "5");
// myArray åæäº ["4", "5", "1", "2", "3"]
slice()
æ¹æ³ä»æ°ç»æåä¸ä¸ªç段ï¼å¹¶ä½ä¸ºä¸ä¸ªæ°æ°ç»è¿åã
let myArray = ["a", "b", "c", "d", "e"];
myArray = myArray.slice(1, 4); // [ "b", "c", "d"]
// ä»ç´¢å¼ 1 å¼å§ï¼æåææçå
ç´ ï¼ç´å°ç´¢å¼ 3 为æ¢
at()
æ¹æ³è¿åæ°ç»ä¸æå®ç´¢å¼å¤çå
ç´ ï¼å¦æç´¢å¼è¶
åºèå´ï¼åè¿å undefined
ãå®ä¸»è¦ç¨äºä»æ°ç»æ«å°¾è®¿é®å
ç´ çè´ä¸æ ã
const myArray = ["a", "b", "c", "d", "e"];
myArray.at(-2); // "d"ï¼myArray çåæ°ç¬¬äºä¸ªå
ç´
splice()
æ¹æ³ä»æ°ç»ç§»é¤ä¸äºå
ç´ ï¼å¹¶ï¼å¯éå°ï¼æ¿æ¢å®ä»¬ãå®è¿å仿°ç»ä¸å é¤çå
ç´ ã
const myArray = ["1", "2", "3", "4", "5"];
myArray.splice(1, 3, "a", "b", "c", "d");
// myArray ç°å¨æ¯ ["1", "a", "b", "c", "d", "5"]
// æ¬ä»£ç ä» 1 å·ç´¢å¼å¼å§ï¼æå
ç´ â2âæå¨çä½ç½®ï¼ï¼
// ç§»é¤ 3 个å
ç´ ï¼ç¶åå°åç»å
ç´ æå
¥å°é£ä¸ªä½ç½®ä¸ã
reverse()
æ¹æ³åå°é¢ åæ°ç»å
ç´ ç顺åºï¼ç¬¬ä¸ä¸ªæ°ç»å
ç´ å为æåä¸ä¸ªæ°ç»å
ç´ ï¼æåä¸ä¸ªæ°ç»å
ç´ å为第ä¸ä¸ªæ°ç»å
ç´ ãå®è¿å对æ°ç»çå¼ç¨ã
const myArray = ["1", "2", "3"];
myArray.reverse();
// å°åæ°ç»é¢ åï¼myArray = [ "3", "2", "1" ]
flat()
æ¹æ³è¿åä¸ä¸ªæ°æ°ç»ï¼ææåæ°ç»å
ç´ éå½å°è¿æ¥å°å
¶ä¸ï¼ç´å°æå®ç深度ã
let myArray = [1, 2, [3, 4]];
myArray = myArray.flat();
// myArray ç°å¨æ¯ [1, 2, 3, 4]ï¼å ä¸ºåæ°ç» [3, 4] 已被å±å¹³
sort()
æ¹æ³å¯¹æ°ç»çå
ç´ è¿è¡éå½çæåºï¼å¹¶è¿å对æ°ç»çå¼ç¨ã
const myArray = ["Wind", "Rain", "Fire"];
myArray.sort();
// 对æ°ç»æåºï¼myArray = ["Fire", "Rain", "Wind"]
sort()
ä¹å¯ä»¥æ¥ååè°å½æ°æ¥å³å®å¦ä½æ¯è¾æ°ç»å
ç´ ã使ç¨ä¸¤ä¸ªåæ°è°ç¨åè°å½æ°ï¼å®ä»¬æ¯æ¥èªæ°ç»ç两个å¼ãè¯¥å½æ°æ¯è¾è¿ä¸¤ä¸ªå¼å¹¶è¿åæ£æ°ãè´æ°æé¶ï¼è¡¨ç¤ºè¿ä¸¤ä¸ªå¼ç顺åºãä¾å¦ï¼ä»¥ä¸å½ä»¤å°æ ¹æ®å符串çæåä¸ä¸ªåæ¯å¯¹æ°ç»è¿è¡æåºï¼
const sortFn = (a, b) => {
if (a[a.length - 1] < b[b.length - 1]) {
return -1; // è´æ° => a < bï¼a å¨ b ä¹å
} else if (a[a.length - 1] > b[b.length - 1]) {
return 1; // æ£æ° => a > bï¼a å¨ b ä¹å
}
return 0; // 0 => a = bï¼a å b ä¿æåæ¥ç顺åº
};
myArray.sort(sortFn);
// 对æ°ç»æåºï¼myArray = ["Wind","Fire","Rain"]
a
å°äº b
ï¼è¿å -1
ï¼æä»»ä½è´æ°ï¼a
å¤§äº b
ï¼è¿å 1
ï¼æä»»ä½æ£æ°ï¼a
å b
ç¸çï¼è¿å 0
ãindexOf()
æ¹æ³å¨æ°ç»ä¸æç´¢ searchElement
å¹¶è¿å第ä¸ä¸ªå¹é
çç´¢å¼ã
const a = ["a", "b", "a", "b", "a"];
console.log(a.indexOf("b")); // 1
// åè¯ä¸æ¬¡ï¼è¿æ¬¡ä»æå䏿¬¡å¹é
ä¹åå¼å§
console.log(a.indexOf("b", 2)); // 3
console.log(a.indexOf("z")); // -1, å 为æ¾ä¸å° 'z'
lastIndexOf()
æ¹æ³çå·¥ä½åçç±»ä¼¼äº indexOf
ï¼ä½è¿æ¯ä»æ«å°¾å¼å§ï¼ååæç´¢ã
const a = ["a", "b", "c", "d", "a", "b"];
console.log(a.lastIndexOf("b")); // 5
// åè¯ä¸æ¬¡ï¼è¿æ¬¡ä»æå䏿¬¡å¹é
ä¹åå¼å§
console.log(a.lastIndexOf("b", 4)); // 1
console.log(a.lastIndexOf("z")); // -1
forEach()
æ¹æ³å¯¹æ°ç»ä¸çæ¯ä¸ªå
ç´ æ§è¡ callback
å¹¶è¿å undefined
ã
const a = ["a", "b", "c"];
a.forEach((element) => {
console.log(element);
});
// è¾åºï¼
// a
// b
// c
æ¥ååè°ç forEach
æ¹æ³ï¼ä»¥åä¸é¢çå
¶ä»æ¹æ³ï¼è¢«ç§°ä¸ºè¿ä»£æ¹æ³ï¼å 为å®ä»¬ä»¥æç§æ¹å¼éåæ´ä¸ªæ°ç»ãæ¯ä¸ªé½æ¥å第äºä¸ªå¯éçåæ° thisArg
ã妿æä¾ï¼thisArg
å°æä¸ºåè°å½æ°ä½ä¸ this
å
³é®åçå¼ãå¦ææ²¡ææä¾ï¼å°±åå¨æç¡®ç对象ä¸ä¸æä¹å¤è¢«è°ç¨ä¸æ ·ï¼å½å½æ°å¨ä¸¥æ ¼æ¨¡å¼ä¸æ¶ï¼this
æ¯ undefined
ï¼å½å½æ°å¨éä¸¥æ ¼æ¨¡å¼ä¸æ¶ï¼this
å°å¼ç¨å
¨å±å¯¹è±¡ï¼window
ãglobalThis
çãï¼ã
夿³¨ï¼ ä¸é¢ä»ç»ç sort()
æ¹æ³ä¸æ¯è¿ä»£æ¹æ³ï¼å 为å®çåè°å½æ°åªç¨äºæ¯è¾ï¼ä¸è½åºäºå
ç´ é¡ºåºä»¥ä»»ä½ç¹å®é¡ºåºè°ç¨ãsort()
ä¹ä¸æ¥å thisArg
å½¢åã
map()
æ¹æ³è¿åç±æ¯ä¸ªæ°ç»å
ç´ ä¸æ§è¡ callback
çè¿åå¼æç»æçæ°æ°ç»ã
const a1 = ["a", "b", "c"];
const a2 = a1.map((item) => item.toUpperCase());
console.log(a2); // ['A', 'B', 'C']
flatMap()
æ¹æ³å
æ§è¡ map()
ï¼åæ§è¡æ·±åº¦ä¸º 1 ç flat()
ã
const a1 = ["a", "b", "c"];
const a2 = a1.flatMap((item) => [item.toUpperCase(), item.toLowerCase()]);
console.log(a2); // ['A', 'a', 'B', 'b', 'C', 'c']
filter()
æ¹æ³è¿åä¸ä¸ªæ°æ°ç»ï¼å
¶ä¸å
å« callback
è¿å true
çå
ç´ ã
const a1 = ["a", 10, "b", 20, "c", 30];
const a2 = a1.filter((item) => typeof item === "number");
console.log(a2); // [10, 20, 30]
find()
æ¹æ³è¿å callback
è¿å true
ç第ä¸ä¸ªå
ç´ ã
const a1 = ["a", 10, "b", 20, "c", 30];
const i = a1.find((item) => typeof item === "number");
console.log(i); // 10
findLast()
æ¹æ³è¿å callback
è¿å true
çæåä¸ä¸ªå
ç´ ã
const a1 = ["a", 10, "b", 20, "c", 30];
const i = a1.findLast((item) => typeof item === "number");
console.log(i); // 30
findIndex()
æ¹æ³è¿å callback
è¿å true
ç第ä¸ä¸ªå
ç´ çç´¢å¼ã
const a1 = ["a", 10, "b", 20, "c", 30];
const i = a1.findIndex((item) => typeof item === "number");
console.log(i); // 1
findLastIndex()
æ¹æ³è¿å callback
è¿å true
çæåä¸ä¸ªå
ç´ çç´¢å¼ã
const a1 = ["a", 10, "b", 20, "c", 30];
const i = a1.findLastIndex((item) => typeof item === "number");
console.log(i); // 5
妿 callback
对æ°ç»ä¸çæ¯ä¸ä¸ªå
ç´ é½è¿å true
ï¼å every()
æ¹æ³è¿å true
ã
function isNumber(value) {
return typeof value === "number";
}
const a1 = [1, 2, 3];
console.log(a1.every(isNumber)); // true
const a2 = [1, "2", 3];
console.log(a2.every(isNumber)); // false
妿 callback
对æ°ç»ä¸è³å°ä¸ä¸ªå
ç´ è¿å true
ï¼å some()
æ¹æ³è¿å true
ã
function isNumber(value) {
return typeof value === "number";
}
const a1 = [1, 2, 3];
console.log(a1.some(isNumber)); // true
const a2 = [1, "2", 3];
console.log(a2.some(isNumber)); // true
const a3 = ["1", "2", "3"];
console.log(a3.some(isNumber)); // false
reduce()
æ¹æ³å¯¹æ°ç»ä¸çæ¯ä¸ªå¼æ§è¡ callback(accumulator, currentValue, currentIndex, Array)
ï¼ç®çæ¯å°å表ä¸çå
ç´ åå°å°å个å¼ãreduce
彿°è¿å callback
彿°è¿åçæç»å¼ã
妿æå®äº initialValue
ï¼åè°ç¨ callback
ï¼å¹¶å° initialValue
ä½ä¸ºç¬¬ä¸ä¸ªåæ°å¼ï¼å°æ°ç»ä¸ç¬¬ä¸ä¸ªå
ç´ çå¼ä½ä¸ºç¬¬äºä¸ªåæ°å¼ã
å¦ææ²¡ææå® initialValue
ï¼é£ä¹ callback
çåä¸¤ä¸ªåæ°å¼å°æ¯æ°ç»ç第ä¸ä¸ªå第äºä¸ªå
ç´ ãä¹åçæ¯ä¸æ¬¡è°ç¨ï¼ç¬¬ä¸ä¸ªåæ°çå¼å°æ¯åä¸ä¸ªè°ç¨ä¸è¿åç callback
ï¼ç¬¬äºä¸ªåæ°çå¼å°æ¯æ°ç»ä¸çä¸ä¸ä¸ªå¼ã
妿 callback
éè¦è®¿é®æ£å¨å¤ççå
ç´ çç´¢å¼ï¼æè
è®¿é®æ´ä¸ªæ°ç»ï¼å®ä»¬å¯ä»¥ä½ä¸ºå¯éåæ°ã
const a = [10, 20, 30];
const total = a.reduce(
(accumulator, currentValue) => accumulator + currentValue,
0,
);
console.log(total); // 60
reduceRight()
æ¹æ³çå·¥ä½åçç±»ä¼¼äº reduce()
ï¼ä½ä»æåä¸ä¸ªå
ç´ å¼å§ã
reduce
å reduceRight
æ¯è¿ä»£æ°ç»æ¹æ³ä¸æä¸è¢«äººçç¥çä¸¤ä¸ªå½æ°ãå®ä»¬åºè¯¥ä½¿ç¨å¨é£äºéè¦ææ°ç»çå
ç´ ä¸¤ä¸¤éå½å¤çï¼å¹¶æç»è®¡ç®æä¸ä¸ªåä¸ç»æçç®æ³ã
æ°ç»å¯ä»¥å
å«â空槽âï¼è¿ä¸ç¨å¼ undefined
å¡«å
çæ§½ä¸ä¸æ ·ã空槽å¯ä»¥éè¿ä»¥ä¸æ¹å¼ä¹ä¸å建ï¼
// Array æé 彿°ï¼
const a = Array(5); // [ <5 empty items> ]
// æ°ç»åé¢éä¸çè¿ç»éå·ï¼
const b = [1, 2, , , 5]; // [ 1, 2, <2 empty items>, 5 ]
// ç´æ¥ç»å¤§äº array.length çç´¢å¼è®¾ç½®å¼ä»¥å½¢æç©ºæ§½ï¼
const c = [1, 2];
c[4] = 5; // [ 1, 2, <2 empty items>, 5 ]
// éè¿ç´æ¥è®¾ç½® .length æé¿ä¸ä¸ªæ°ç»ï¼
const d = [1, 2];
d.length = 5; // [ 1, 2, <3 empty items> ]
// å é¤ä¸ä¸ªå
ç´ ï¼
const e = [1, 2, 3, 4, 5];
delete e[2]; // [ 1, 2, <1 empty item>, 4, 5 ]
å¨æäºæä½ä¸ï¼ç©ºæ§½çè¡ä¸ºå°±åå®ä»¬è¢«å¡«å
¥äº undefined
飿 ·ã
const arr = [1, 2, , , 5]; // å建ä¸ä¸ªç¨çæ°ç»
// éè¿ç´¢å¼è®¿é®
console.log(arr[2]); // undefined
// For...of
for (const i of arr) {
console.log(i);
}
// è¾åºï¼1 2 undefined undefined 5
// å±å¼è¿ç®
const another = [...arr]; // "another" 为 [ 1, 2, undefined, undefined, 5 ]
å¨å ¶ä»æ¹æ³ï¼ç¹å«æ¯æ°ç»è¿ä»£æ¹æ³æ¶ï¼ç©ºæ§½æ¯è¢«è·³è¿çã
const mapped = arr.map((i) => i + 1); // [ 2, 3, <2 empty items>, 6 ]
arr.forEach((i) => console.log(i)); // 1 2 5
const filtered = arr.filter(() => true); // [ 1, 2, 5 ]
const hasFalsy = arr.some((k) => !k); // false
// 屿§è¿ä»£
const keys = Object.keys(arr); // [ '0', '1', '4' ]
for (const key in arr) {
console.log(key);
}
// è¾åºï¼'0' '1' '4'
// å¨å¯¹è±¡ä¸ä½¿ç¨å±å¼ï¼ä½¿ç¨å±æ§æä¸¾ï¼è䏿¯æ°ç»çè¿ä»£å¨
const objectSpread = { ...arr }; // { '0': 1, '1': 2, '4': 5 }
å
³äºæ°ç»æ¹æ³å¨ç¨çæ°ç»ä¸çè¡ä¸ºç宿´å表ï¼è¯·åè§ Array
åè页ã
æ°ç»æ¯å¯ä»¥åµå¥çï¼è¿å°±æå³çä¸ä¸ªæ°ç»å¯ä»¥ä½ä¸ºä¸ä¸ªå ç´ è¢«å å«å¨å¦å¤ä¸ä¸ªæ°ç»éé¢ãå©ç¨ JavaScript æ°ç»çè¿ä¸ªç¹æ§ï¼å¯ä»¥å建å¤ç»´æ°ç»ã
以ä¸ä»£ç å建äºä¸ä¸ªäºç»´æ°ç»ã
const a = new Array(4);
for (i = 0; i < 4; i++) {
a[i] = new Array(4);
for (j = 0; j < 4; j++) {
a[i][j] = "[" + i + "," + j + "]";
}
}
è¿ä¸ªä¾ååå»ºçæ°ç»æ¥æä»¥ä¸è¡æ°æ®ï¼
Row 0: [0,0] [0,1] [0,2] [0,3] Row 1: [1,0] [1,1] [1,2] [1,3] Row 2: [2,0] [2,1] [2,2] [2,3] Row 3: [3,0] [3,1] [3,2] [3,3]ä½¿ç¨æ°ç»åå¨å ¶ä»å±æ§
æ°ç»ä¹å¯ä»¥åå¯¹è±¡é£æ ·ä½¿ç¨ï¼ä»¥åå¨ç¸å ³ä¿¡æ¯ï¼
const arr = [1, 2, 3];
arr.property = "value";
console.log(arr.property); // "value"
ä¾å¦ï¼å½ä¸ä¸ªæ°ç»ä½ä¸ºåç¬¦ä¸²åæ£å表达å¼çå¹é
ç»ææ¶ï¼è¯¥æ°ç»å°ä¼è¿åç¸å
³å¹é
ä¿¡æ¯ç屿§åå
ç´ ãRegExp.prototype.exec()
ãString.prototype.match()
å String.prototype.split()
çè¿å弿¯ä¸ä¸ªæ°ç»ãä½¿ç¨æ°ç»åæ£å表达å¼çæ´å¤ä¿¡æ¯ï¼åè§æ£å表达å¼ã
ä¸äº JavaScript 对象ï¼å¦ document.getElementsByTagName()
è¿åç NodeList
æ arguments
ç JavaScript å¯¹è±¡ï¼æä¸æ°ç»ç¸ä¼¼çè¡ä¸ºï¼ä½å®ä»¬å¹¶ä¸å
±äº«æ°ç»çæææ¹æ³ãarguments
对象æä¾äº length
屿§ï¼ä½æ²¡æå®ç°å¦ forEach()
çæ°ç»æ¹æ³ã
ä¸è½ç´æ¥å¨ç±»æ°ç»å¯¹è±¡ä¸è°ç¨æ°ç»æ¹æ³ã
function printArguments() {
arguments.forEach((item) => {
console.log(item);
}); // TypeError: arguments.forEach is not a function
}
ä½ä½ å¯ä»¥éè¿ Function.prototype.call()
é´æ¥è°ç¨å®ä»¬ã
function printArguments() {
Array.prototype.forEach.call(arguments, (item) => {
console.log(item);
});
}
æ°ç»ååæ¹æ³ä¹å¯ä»¥ç¨äºå符串ï¼å 为å®ä»¬ä»¥ç±»ä¼¼äºæ°ç»çæ¹å¼æä¾å¯¹å ¶ä¸å符ç顺åºè®¿é®ï¼
Array.prototype.forEach.call("a string", (chr) => {
console.log(chr);
});
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