Array
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. Itโs been available across browsers since โจ2015ๅนด7ๆโฉ.
* Some parts of this feature may have varying levels of support.
ไธๅ
ถไป็ผ็จ่ฏญ่จไธญ็ๆฐ็ปไธๆ ท๏ผArray
ๅฏน่ฑกๆฏๆๅจๅไธชๅ้ๅไธๅญๅจๅคไธชๅ
็ด ๏ผๅนถๅ
ทๆๆง่กๅธธ่งๆฐ็ปๆไฝ็ๆๅใ
ๆ่ฟฐ
ๅจ JavaScript ไธญ๏ผๆฐ็ปไธๆฏๅๅง็ฑปๅ๏ผ่ๆฏๅ
ทๆไปฅไธๆ ธๅฟ็นๅพ็ Array
ๅฏน่ฑก๏ผ
- JavaScript ๆฐ็ปๆฏๅฏ่ฐๆดๅคงๅฐ็๏ผๅนถไธๅฏไปฅๅ ๅซไธๅ็ๆฐๆฎ็ฑปๅใ๏ผๅฝไธ้่ฆ่ฟไบ็นๅพๆถ๏ผๅฏไปฅไฝฟ็จ็ฑปๅๅๆฐ็ปใ๏ผ
- JavaScript ๆฐ็ปไธๆฏๅ ณ่ๆฐ็ป๏ผๅ ๆญค๏ผไธ่ฝไฝฟ็จไปปๆๅญ็ฌฆไธฒไฝไธบ็ดขๅผ่ฎฟ้ฎๆฐ็ปๅ ็ด ๏ผไฝๅฟ ้กปไฝฟ็จ้่ดๆดๆฐ๏ผๆๅฎไปฌๅ่ช็ๅญ็ฌฆไธฒๅฝขๅผ๏ผไฝไธบ็ดขๅผ่ฎฟ้ฎใ
- JavaScript ๆฐ็ป็็ดขๅผไป 0 ๅผๅง๏ผๆฐ็ป็็ฌฌไธไธชๅ
็ด ๅจ็ดขๅผ
0
ๅค๏ผ็ฌฌไบไธชๅจ็ดขๅผ1
ๅค๏ผไปฅๆญค็ฑปๆจ๏ผๆๅไธไธชๅ ็ด ๆฏๆฐ็ป็length
ๅฑๆงๅๅป1
็ๅผใ - JavaScript ๆฐ็ปๅคๅถๆไฝๅๅปบๆต ๆท่ดใ๏ผๆๆ JavaScript ๅฏน่ฑก็ๆ ๅๅ ็ฝฎๅคๅถๆไฝ้ฝไผๅๅปบๆต ๆท่ด๏ผ่ไธๆฏๆทฑๆท่ด๏ผใ
ๆฐ็ป็ดขๅผ
Array
ๅฏน่ฑกไธ่ฝไฝฟ็จไปปๆๅญ็ฌฆไธฒไฝไธบๅ
็ด ็ดขๅผ๏ผๅฆๅ
ณ่ๆฐ็ป๏ผ๏ผๅฟ
้กปไฝฟ็จ้่ดๆดๆฐ๏ผๆๅฎไปฌ็ๅญ็ฌฆไธฒๅฝขๅผ๏ผใ้่ฟ้ๆดๆฐ่ฎพ็ฝฎๆ่ฎฟ้ฎไธไผ่ฎพ็ฝฎๆไปๆฐ็ปๅ่กจๆฌ่บซๆฃ็ดขๅ
็ด ๏ผไฝไผ่ฎพ็ฝฎๆ่ฎฟ้ฎไธ่ฏฅๆฐ็ป็ๅฏน่ฑกๅฑๆง้ๅ็ธๅ
ณ็ๅ้ใๆฐ็ป็ๅฏน่ฑกๅฑๆงๅๆฐ็ปๅ
็ด ๅ่กจๆฏๅๅผ็๏ผๆฐ็ป็้ๅๅไฟฎๆนๆไฝไธ่ฝๅบ็จไบ่ฟไบๅ
ทๅๅฑๆงใ
ๆฐ็ปๅ
็ด ๆฏๅฏน่ฑกๅฑๆง๏ผๅฐฑๅ toString
ๆฏๅฑๆงไธๆ ท๏ผๅ
ทไฝๆฅ่ฏด๏ผtoString()
ๆฏไธ็งๆนๆณ๏ผใ็ถ่๏ผๅฐ่ฏๆไปฅไธๆนๅผ่ฎฟ้ฎๆฐ็ป็ๅ
็ด ไผๆๅบ่ฏญๆณ้่ฏฏ๏ผๅ ไธบๅฑๆงๅๆ ๆ๏ผ
arr.0; // ่ฏญๆณ้่ฏฏ
JavaScript ่ฏญๆณ่ฆๆฑไฝฟ็จๆนๆฌๅท่กจ็คบๆณ่ไธๆฏ็นๅท่กจ็คบๆณๆฅ่ฎฟ้ฎไปฅๆฐๅญๅผๅคด็ๅฑๆงใไนๅฏไปฅ็จๅผๅทๅ
่ฃนๆฐ็ป็ดขๅผ๏ผไพๅฆ๏ผyears['2']
่ไธๆฏ years[2]
๏ผ๏ผๅฐฝ็ฎก้ๅธธๆฒกๆๅฟ
่ฆใ
JavaScript ๅผๆ้่ฟ้ๅผ็ toString
๏ผๅฐ years[2]
ไธญ็ 2
ๅผบๅถ่ฝฌๆขไธบๅญ็ฌฆไธฒใๅ ๆญค๏ผ'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("banana", "apple", "peach");
console.log(fruits.length); // 3
ๅฝๅจ JavaScript ๆฐ็ปไธ่ฎพ็ฝฎไธไธชๅฑๆงๆถ๏ผๅฆๆ่ฏฅๅฑๆงๆฏไธไธชๆๆ็ๆฐ็ป็ดขๅผๅนถไธ่ฏฅ็ดขๅผๅจๆฐ็ป็ๅฝๅ่พน็ไนๅค๏ผๅผๆๅฐ็ธๅบๅฐๆดๆฐๆฐ็ป็ length
ๅฑๆง๏ผ
fruits[5] = "mango";
console.log(fruits[5]); // 'mango'
console.log(Object.keys(fruits)); // ['0', '1', '2', '5']
console.log(fruits.length); // 6
ๅขๅ length
ไผ้่ฟๆทปๅ ็ฉบๆงฝๆฅๆฉๅฑๆฐ็ป๏ผ่ไธๆฏๅๅปบไปปไฝๆฐๅ
็ด โโ็่ณไธไผๆฏ undefined
ใ
fruits.length = 10;
console.log(fruits); // ['banana', 'apple', 'peach', empty x 2, 'mango', empty 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
่ฟๅฐๅจ 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 = ["็บข", "้ป", "่"];
colors[5] = "็ดซ";
colors.forEach((item, index) => {
console.log(`${index}๏ผ${item}`);
});
// ่พๅบ๏ผ
// 0๏ผ็บข
// 1๏ผ้ป
// 2๏ผ่
// 5๏ผ็ดซ
colors.reverse(); // ['็ดซ', ็ฉบๆงฝ ร 2, '่', '้ป', '็บข']
่พๆฐ็ๆนๆณ๏ผไพๅฆ keys
๏ผไธไผๅฏน็ฉบๆงฝ่ฟ่ก็นๆฎๅค็๏ผ่ๆฏๅฐๅฎไปฌ่งไธบๅ
ๅซ undefined
ใๅฐ็ฉบๆงฝๅๅนถไธบ undefined
ๅ
็ด ๆนๆณๆ๏ผentries()
ใfill()
ใfind()
ใfindIndex()
ใfindLast()
ใfindLastIndex()
ใincludes()
ใjoin()
ใkeys()
ใtoLocaleString()
ใvalues()
ๅ with()
ใ
const colors = ["็บข", "้ป", "่"];
colors[5] = "็ดซ";
const iterator = colors.keys();
for (const key of iterator) {
console.log(`${key}๏ผ${colors[key]}`);
}
// ่พๅบ
// 0๏ผ็บข
// 1๏ผ้ป
// 2๏ผ่
// 3๏ผundefined
// 4๏ผundefined
// 5๏ผ็ดซ
const newColors = colors.toReversed(); // ['็ดซ', undefined, undefined, '่', '้ป', '็บข']
ๅคๅถๆนๆณๅไฟฎๆนๆนๆณ
ๆไบๆนๆณไธไผไฟฎๆน่ฐ็จ่ฏฅๆนๆณ็็ฐๆๆฐ็ป๏ผ่ๆฏ่ฟๅไธไธชๆฐ็ๆฐ็ปใๅฎไปฌ้่ฟ้ฆๅ ๆ้ ไธไธชๆฐๆฐ็ป๏ผ็ถๅๅกซๅ ๅ ็ด ๆฅๅฎ็ฐใๅคๅถๅง็ปๆฏๆต ๅฑๆฌก็โโ่ฏฅๆนๆณไปไธๅคๅถไธๅผๅงๅๅปบ็ๆฐ็ปไนๅค็ไปปไฝๅ ๅฎนใๅๅงๆฐ็ป็ๅ ็ด ๅฐๆไปฅไธๆนๅผๅคๅถๅฐๆฐๆฐ็ปไธญ๏ผ
- ๅฏน่ฑก๏ผๅฏน่ฑกๅผ็จ่ขซๅคๅถๅฐๆฐๆฐ็ปไธญใๅๆฐ็ปๅๆฐๆฐ็ป้ฝๅผ็จๅไธไธชๅฏน่ฑกใไนๅฐฑๆฏ่ฏด๏ผๅฆๆไธไธช่ขซๅผ็จ็ๅฏน่ฑก่ขซไฟฎๆน๏ผๆฐๆฐ็ปๅๅๆฐ็ป้ฝๅฏไปฅ็ๅฐๆดๆนใ
- ๅๅง็ฑปๅ๏ผๅฆๅญ็ฌฆไธฒใๆฐๅญๅๅธๅฐๅผ๏ผไธๆฏ
String
ใNumber
ๅBoolean
ๅฏน่ฑก๏ผ๏ผๅฎไปฌ็ๅผ่ขซๅคๅถๅฐๆฐๆฐ็ปไธญใ
ๅ ถไปๆนๆณไผๆนๅ่ฐ็จ่ฏฅๆนๆณ็ๆฐ็ป๏ผๅจ่ฟ็งๆ ๅตไธ๏ผๅฎไปฌ็่ฟๅๅผๆ นๆฎๆนๆณ็ไธๅ่ไธๅ๏ผๆๆถๆฏๅฏน็ธๅๆฐ็ป็ๅผ็จ๏ผๆๆถๆฏๆฐๆฐ็ป็้ฟๅบฆใ
ไปฅไธๆนๆณ้่ฟ่ฎฟ้ฎ this.constructor[Symbol.species]
ๆฅๅๅปบๆฐๆฐ็ป๏ผไปฅ็กฎๅฎ่ฆไฝฟ็จ็ๆ้ ๅฝๆฐ๏ผconcat()
ใfilter()
ใflat()
ใflatMap()
ใmap()
ใslice()
ๅ splice()
๏ผ่ฟๅๆ้ ็ๅทฒๅ ้คๅ
็ด ๆฐ็ป๏ผ
ไปฅไธๆนๆณๆปๆฏไฝฟ็จ Array
ๅบ็กๆ้ ๅฝๆฐๅๅปบๆฐๆฐ็ป๏ผtoReversed()
ใtoSorted()
ใtoSpliced()
ๅ with()
ใ
ไธ่กจๅๅบไบไผไฟฎๆนๅๅงๆฐ็ป็ๆนๆณ๏ผไปฅๅ็ธๅบ็้ไฟฎๆนๆนๆณ๏ผ
ไฟฎๆนๆนๆณ | ็ธๅบ็้ไฟฎๆนๆนๆณ |
---|---|
copyWithin() |
ๆฒกๆ็ธๅบ็้ไฟฎๆนๆนๆณ |
fill() |
ๆฒกๆ็ธๅบ็้ไฟฎๆนๆนๆณ |
pop() |
slice(0, -1) |
push(v1, v2) |
concat([v1, v2]) |
reverse() |
toReversed() |
shift() |
slice(1) |
sort() |
toSorted() |
splice() |
toSpliced() |
unshift(v1, v2) |
toSpliced(0, 0, v1, v2) |
ๅฐๆนๅๅๆฐ็ป็ๆนๆณ่ฝฌๆขไธบ้ไฟฎๆนๆนๆณ็ไธ็ง็ฎๅๆนๅผๆฏไฝฟ็จๅฑๅผ่ฏญๆณๆ slice()
ๅ
ๅๅปบไธไธชๅฏๆฌ๏ผ
arr.copyWithin(0, 1, 2); // ๆนๅไบ arr
const arr2 = arr.slice().copyWithin(0, 1, 2); // ไธๆนๅ arr
const arr3 = [...arr].copyWithin(0, 1, 2); // ไธๆนๅ arr
่ฟญไปฃๆนๆณ
่ฎธๅคๆฐ็ปๆนๆณๆฅๅไธไธชๅ่ฐๅฝๆฐไฝไธบๅๆฐใๅ่ฐๅฝๆฐๆ้กบๅบไธบๆฐ็ปไธญ็ๆฏไธชๅ ็ด ่ฐ็จ๏ผไธๆๅค่ฐ็จไธๆฌก๏ผๅนถไธๅ่ฐๅฝๆฐ็่ฟๅๅผ็จไบ็กฎๅฎๆนๆณ็่ฟๅๅผใๅฎไปฌ้ฝๅ ทๆ็ธๅ็ๆนๆณ็ญพๅ๏ผ
method(callbackFn, thisArg)
ๅ
ถไธญ callbackFn
ๆฅๅไธไธชๅๆฐ
element
-
ๆฐ็ปไธญๅฝๅๆญฃๅจๅค็็ๅ ็ด ใ
index
-
ๆญฃๅจๅค็็ๅ ็ด ๅจๆฐ็ปไธญ็็ดขๅผใ
array
-
่ฐ็จ่ฏฅๆนๆณ็ๆฐ็ปใ
callbackFn
็่ฟๅๅผๅๅณไบ่ฐ็จ็ๆฐ็ปๆนๆณใ
thisArg
ๅๆฐ๏ผ้ป่ฎคไธบ undefined
๏ผๅฐๅจ่ฐ็จ callbackFn
ๆถ็จไฝ this
ๅผใๆ็ป็ฑ callbackFn
่งๅฏๅฐ็ this
ๅผๆ นๆฎ้ๅธธ็่งๅ็กฎๅฎ๏ผๅฆๆ callbackFn
ๆฏ้ไธฅๆ ผๆจกๅผ๏ผๅๅง this
ๅผๅฐ่ขซๅ
่ฃ
ไธบๅฏน่ฑก๏ผๅนถๅฐ undefined
/null
ๆฟๆขไธบ globalThis
ใๅฏนไบไฝฟ็จ็ฎญๅคดๅฝๆฐ ๅฎไน็ไปปไฝ callbackFn
ๆฅ่ฏด๏ผthisArg
ๅๆฐ้ฝๆฏๆ ๅ
ณ็ดง่ฆ็๏ผๅ ไธบ็ฎญๅคดๅฝๆฐๆฒกๆ่ชๅทฑ็ this
็ปๅฎใ
ๅฆๆๆณ่ฆๅจ่ฟญไปฃๆ้ด่ฏปๅๅฆไธไธช็ดขๅผๅผ็่ฏ๏ผไผ ้็ป callbackFn
็ array
ๅๆฐๆฏๆ็จ็๏ผๅ ไธบๅฏ่ฝๅนถไธๆปๆฏๆไธไธชๅผ็จๅฝๅๆฐๆฎ็็ฐๆๅ้ใๅจ่ฟญไปฃ่ฟ็จไธญ๏ผ้ๅธธไธๅบๆดๆนๆฐ็ป๏ผๅ่ง ่ฟญไปฃๆนๆณไธญ็ๆนๅๅๅงๆฐ็ป๏ผ๏ผไฝๅฏไปฅไฝฟ็จ่ฟไธชๅๆฐ่ฟๆ ทๅใarray
ๅๆฐไธๆฏๆญฃๅจๆๅปบ็ๆฐ็ป๏ผๅจ็ฑปไผผ map()
ใfilter()
ๅ flatMap()
ๆนๆณ็ๆ
ๅตไธโโๆ ๆณ้่ฟๅ่ฐๅฝๆฐ่ฎฟ้ฎๆญฃๅจๆๅปบ็ๆฐ็ปใ
ๆๆ่ฟญไปฃๆนๆณ้ฝๆฏๅคๅถๆนๆณๅ้็จๆนๆณ๏ผๅฐฝ็ฎกๅฎไปฌๅจๅค็็ฉบๆงฝๆถ็่กไธบไธๅใ
ไปฅไธๆนๆณๆฏ่ฟญไปฃๆนๆณ๏ผevery()
ใfilter()
ใfind()
ใfindIndex()
ใfindLast()
ใfindLastIndex()
ใflatMap()
ใforEach()
ใmap()
ๅ some()
ใ
็นๅซๅฐ๏ผevery()
ใfind()
ใfindIndex()
ใfindLast()
ใfindLastIndex()
ๅ some()
ๅนถไธๆปๆฏๅจๆฏไธชๅ
็ด ไธ่ฐ็จ callbackFn
โโๅฎไปฌๅจ็กฎๅฎ่ฟๅๅผๅ็ซๅณๅๆญข่ฟญไปฃใ
reduce()
ๅ reduceRight()
ๆนๆณไนๆฅๅไธไธชๅ่ฐๅฝๆฐ๏ผๅนถๅฏนๆฐ็ปไธญ็ๆฏไธชๅ
็ด ๆๅค่ฟ่กไธๆฌก๏ผไฝๅฎไปฌ็ๆนๆณ็ญพๅไธๅ
ธๅ็่ฟญไปฃๆนๆณ็ฅๆไธๅ๏ผไพๅฆ๏ผๅฎไปฌไธๆฅๅ thisArg
๏ผใ
sort()
ๆนๆณไนๆฅๅไธไธชๅ่ฐๅฝๆฐ๏ผไฝๅฎไธๆฏไธไธช่ฟญไปฃๆนๆณใๅฎไผๅฐฑๅฐไฟฎๆนๆฐ็ป๏ผไธๆฅๅ thisArg
๏ผๅนถไธๅฏ่ฝๅจ็ดขๅผไธๅคๆฌก่ฐ็จๅ่ฐๅฝๆฐใ
่ฟญไปฃๆนๆณ่ฟญไปฃๆฐ็ป๏ผๅฆไธๆ็คบ๏ผ็็ฅ่ฎธๅคๆๆฏ็ป่๏ผ๏ผ
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);
// ไฝฟ็จ result ๅไธไบไบ๏ผไน่ฎธๆดๆฉๅฐ่ฟๅ
}
}
}
ๅคๆณจๅฆไธๅ ๅฎน๏ผ
- ไธๆฏๆๆ็ๆนๆณ้ฝๆง่ก
i in this
้ช่ฏ๏ผfind
ใfindIndex
ใfindLast
ๅfindLastIndex
ๆนๆณไธๆง่ก๏ผๅ ถไป็ไผใ length
ๅ้ๅจๅพช็ฏๅผๅงๅๅญๅจใ่ฟไผๅฝฑๅ่ฟญไปฃ่ฟ็จไธญๆๅ ฅๅๅ ้ค็ๅค็ๆนๅผ๏ผๅ่ง่ฟญไปฃๆนๆณไธญ็ๆนๅๅๅงๆฐ็ป๏ผใmethod
ๆนๆณไธไผๅญๅจๆฐ็ปๅ ๅฎน๏ผๅ ๆญคๅฆๆ่ฟญไปฃๆ้ด๏ผๆไปปไฝ็ดขๅผๅ็ๆดๆน๏ผๅฏไปฅ่งๅฏๅฐๆฐ็ๅผใ- ไธ้ข็ไปฃ็ ๆ็ดขๅผ็ๅๅบ่ฟญไปฃๆฐ็ป๏ผๆไธไบๆนๆณๆ็ดขๅผ้ๅบ่ฟญไปฃ๏ผ
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
ๅฑๆง่ขซ่ฝฌๆขไธบไธไธชๆฐๅญ๏ผ่ขซๆชๆญไธบไธไธชๆดๆฐ๏ผ็ถๅๅบๅฎไธบ 0 ๅฐ 253 - 1 ไน้ด็่ๅดใNaN
ๅๆ 0
๏ผๆไปฅๅณไฝฟ length
ๆฒกๆๅบ็ฐๆๆฏ undefined
๏ผๅฎไนไผ่กจ็ฐๅพๅฅฝๅๅฎ็ๅผๆฏ 0
ใ
JavaScript ้ฟๅ
ๅฐ length
่ฎพ็ฝฎไธบไธๅฎๅ
จ็ๆดๆฐใๅฆๆ length
ๅฐ่ขซ่ฎพ็ฝฎไธบๅคงไบ 253 - 1 ็ๆฐๅญ๏ผๅๆๆๅ
็ฝฎๆนๆณ้ฝๅฐๆๅบ TypeError
ใไฝๆฏ๏ผ็ฑไบๆฐ็ป็ length
ๅฑๆงๅจ่ฎพ็ฝฎไธบๅคงไบ 232 ๆถไผๆๅบ้่ฏฏ๏ผๅ ๆญค้ๅธธไธไผ่พพๅฐๅฎๅ
จๆดๆฐ้ๅผ๏ผ้ค้่ฏฅๆนๆณๅจ้ๆฐ็ปๅฏน่ฑกไธ่ฐ็จใ
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
ไน้ดใ๏ผๅฆๆๅฎๆฒกๆๆๆ็็ดขๅผ๏ผๅฎๅฐๅจๅ่ฝไธ็ญๅไบ็จ็ๆฐ็ปใ๏ผ
่ฎธๅค 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
ๅฎไพใ 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
ๅฎไพ่ชๆ็ๅฑๆงใ
Array.prototype.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()
-
่ฟๅๅจ่ฐ็จๆฐ็ปไธญๅฏไปฅๆพๅฐ็ปๅฎๅ ็ด ็็ฌฌไธไธช๏ผๆๅฐ๏ผ็ดขๅผใ
Array.prototype.join()
-
ๅฐๆฐ็ป็ๆๆๅ ็ด ่ฟๆฅไธบๅญ็ฌฆไธฒใ
Array.prototype.keys()
-
่ฟๅไธไธชๆฐ็ๆฐ็ป่ฟญไปฃๅจ๏ผๅ ถไธญๅ ๅซ่ฐ็จๆฐ็ปไธญๆฏไธช็ดขๅผ็้ฎใ
Array.prototype.lastIndexOf()
-
่ฟๅๅจ่ฐ็จๆฐ็ปไธญๅฏไปฅๆพๅฐ็ปๅฎๅ ็ด ็ๆๅไธไธช๏ผๆๅคง๏ผ็ดขๅผ๏ผๅฆๆๆพไธๅฐๅ่ฟๅ
-1
ใ Array.prototype.map()
-
่ฟๅไธไธชๆฐๆฐ็ป๏ผๅ ถไธญๅ ๅซๅฏน่ฐ็จๆฐ็ปไธญ็ๆฏไธชๅ ็ด ่ฐ็จๅฝๆฐ็็ปๆใ
Array.prototype.pop()
-
ไปๆฐ็ปไธญ็งป้คๆๅไธไธชๅ ็ด ๅนถ่ฟๅ่ฏฅๅ ็ด ใ
Array.prototype.push()
-
ๅจๆฐ็ปๆซๅฐพๆทปๅ ไธไธชๆๅคไธชๅ ็ด ๏ผๅนถ่ฟๅๆฐ็ปๆฐ็
length
ใ Array.prototype.reduce()
-
ๅฏนๆฐ็ป็ๆฏไธชๅ ็ด ๏ผไปๅทฆๅฐๅณ๏ผๆง่ก็จๆทๆไพ็โreducerโๅ่ฐๅฝๆฐ๏ผๅฐๅ ถ็ฎๅไธบๅไธชๅผใ
Array.prototype.reduceRight()
-
ๅฏนๆฐ็ป็ๆฏไธชๅ ็ด ๏ผไปๅณๅฐๅทฆ๏ผๆง่ก็จๆทๆไพ็โreducerโๅ่ฐๅฝๆฐ๏ผๅฐๅ ถ็ฎๅไธบๅไธชๅผใ
Array.prototype.reverse()
-
ๅฐฑๅฐๅ่ฝฌๆฐ็ปไธญๅ ็ด ็้กบๅบใ๏ผๅ้ขๅๆๅ้ข๏ผๅ้ขๅๆๅ้ขใ๏ผ
Array.prototype.shift()
-
ไปๆฐ็ปไธญ็งป้ค็ฌฌไธไธชๅ ็ด ๅนถ่ฟๅ่ฏฅๅ ็ด ใ
Array.prototype.slice()
-
ๆๅ่ฐ็จๆฐ็ป็ไธ้จๅๅนถ่ฟๅไธไธชๆฐๆฐ็ปใ
Array.prototype.some()
-
ๅฆๆ่ฐ็จๆฐ็ปไธญ่ณๅฐๆไธไธชๅ ็ด ๆปก่ถณๆไพ็ๆต่ฏๅฝๆฐ๏ผๅ่ฟๅ
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()
-
ๅจๆฐ็ป็ๅ้ขๆทปๅ ไธไธชๆๅคไธชๅ ็ด ๏ผๅนถ่ฟๅๆฐ็ปๆฐ็
length
ใ Array.prototype.values()
-
่ฟๅไธไธชๆฐ็ๆฐ็ป่ฟญไปฃๅจๅฏน่ฑก๏ผ่ฏฅๅฏน่ฑกๅ ๅซๆฐ็ปไธญๆฏไธช็ดขๅผ็ๅผใ
Array.prototype.with()
-
่ฟๅไธไธชๆฐๆฐ็ป๏ผๅ ถไธญ็ปๅฎ็ดขๅผๅค็ๅ ็ด ๆฟๆขไธบ็ปๅฎๅผ๏ผ่ไธๆนๅๅๅงๆฐ็ปใ
Array.prototype[Symbol.iterator]()
-
้ป่ฎคๆ ๅตไธ๏ผ่ฏฅๆนๆณไธบ
values()
ๆนๆณ็ๅซๅใ
็คบไพ
ๆฌ่ๆไพไธไบ JavaScript ไธญๅธธ่ง็ๆฐ็ปๆไฝ็คบไพใ
ๅคๆณจ๏ผ ๅฆๆไฝ ่ฟไธ็ๆๆฐ็ป็ๅบ็ก็ฅ่ฏ๏ผๅฏไปฅ่่ๅ ่ฏปไธไธ JavaScript ็ฌฌไธๆญฅ๏ผๆฐ็ป๏ผๅฎ่งฃ้ไบๆฐ็ปๆฏไปไน๏ผ่ฟๅ ๆฌๅ ถไปๅธธ่ง็ๆฐ็ปๆไฝ็คบไพใ
ๅๅปบๆฐ็ป
ไธ้ข็ไพๅญๅฑ็คบไบไธ็งๅๅปบๆฐๆฐ็ป็ๆนๆณ๏ผ้ฆๅ
ไฝฟ็จๆฐ็ปๅญ้ข้๏ผ็ถๅไฝฟ็จ Array()
ๆ้ ๅฝๆฐ๏ผๆๅไฝฟ็จ String.prototype.split()
ไปๅญ็ฌฆไธฒๆๅปบๆฐ็ปใ
// ไฝฟ็จๆฐ็ปๅญ้ข้ๅๅปบ็ 'fruits' ๆฐ็ปใ
const fruits = ["Apple", "Banana"];
console.log(fruits.length);
// 2
// ไฝฟ็จ Array() ๆๅปบๅฝๆฐๅๅปบ็ 'fruits2' ๆฐ็ปใ
const fruits2 = new Array("Apple", "Banana");
console.log(fruits2.length);
// 2
// ไฝฟ็จ String.prototype.split() ๆนๆณๅๅปบ็ 'fruits3' ๆฐ็ปใ
const fruits3 = "Apple, Banana".split(", ");
console.log(fruits3.length);
// 2
ไปๆฐ็ปไธญๅๅปบไธไธชๅญ็ฌฆไธฒ
ไธ้ข็ไพๅญไฝฟ็จ join()
ๆนๆณไป fruits
ๆฐ็ปไธญๅๅปบไธไธชๅญ็ฌฆไธฒใ
const fruits = ["Apple", "Banana"];
const fruitsString = fruits.join(", ");
console.log(fruitsString);
// "Apple, Banana"
้่ฟ็ดขๅผ่ฎฟ้ฎๆฐ็ปๅ ็ด
ไธ้ข็ไพๅญๅฑ็คบไบๅฆไฝ้่ฟๆๅฎๅฎไปฌๅจๆฐ็ปไธญ็ไฝ็ฝฎ็็ดขๅผๅทๆฅ่ฎฟ้ฎ fruits
ๆฐ็ปไธญ็ๅ
็ด ใ
const fruits = ["Apple", "Banana"];
// ๆฐ็ป็ฌฌไธไธชๅ
็ด ็็ดขๅผๅง็ปไธบ 0ใ
fruits[0]; // Apple
// ๆฐ็ป็ฌฌไบไธชๅ
็ด ็็ดขๅผๅง็ปไธบ 1ใ
fruits[1]; // Banana
// ๆฐ็ปๆๅไธไธชๅ
็ด ็็ดขๅผๆปๆฏๆฏๆฐ็ป็้ฟๅบฆๅฐ 1ใ
fruits[fruits.length - 1]; // Banana
// ไฝฟ็จๅคงไบๆฐ็ป้ฟๅบฆ็็ดขๅผไผ่ฟๅ"undefined"
fruits[99]; // undefined
ๅจๆฐ็ปไธญๆฅๆพๅ ็ด ็็ดขๅผ
ไธ้ข็ไพๅญไฝฟ็จ indexOf()
ๆนๆณๆฅๆพๅญ็ฌฆไธฒ "Banana"
ๅจ fruits
ๆฐ็ปไธญ็ไฝ็ฝฎ๏ผ็ดขๅผ๏ผใ
const fruits = ["Apple", "Banana"];
console.log(fruits.indexOf("Banana"));
// 1
ๆฃๆฅๆฐ็ปๆฏๅฆๅ ๅซๆไธชๅ ็ด
ไธ้ข็ไพๅญๅฑ็คบไบไธค็งๆฃๆฅ fruits
ๆฐ็ปๆฏๅฆๅ
ๅซ "Banana"
ๅ "Cherry"
็ๆนๆณ๏ผ้ฆๅ
ไฝฟ็จ includes()
ๆนๆณ๏ผ็ถๅไฝฟ็จ indexOf()
ๆนๆณๆฅๆต่ฏ็ดขๅผๅผไธๆฏ -1
ใ
const fruits = ["Apple", "Banana"];
fruits.includes("Banana"); // true
fruits.includes("Cherry"); // false
// ๅฆๆ indexOf() ไธ่ฟๅ -1๏ผๅๆฐ็ปๅ
ๅซ็ปๅฎ็ๅ
็ด ใ
fruits.indexOf("Banana") !== -1; // true
fruits.indexOf("Cherry") !== -1; // false
ๅฐๅ ็ด ๆทปๅ ๅฐๆฐ็ปไธญ
ไธ้ข็ไพๅญไฝฟ็จ push()
ๆนๆณๅ fruits
ๆฐ็ป่ฟฝๅ ไธไธชๆฐๅญ็ฌฆไธฒใ
const fruits = ["Apple", "Banana"];
const newLength = fruits.push("Orange");
console.log(fruits);
// ["Apple", "Banana", "Orange"]
console.log(newLength);
// 3
็งป้คๆฐ็ปไธญ็ๆๅไธไธชๅ ็ด
ไธ้ข็ไพๅญไฝฟ็จ pop()
ๆนๆณไป fruits
ๆฐ็ปไธญ็งป้คๆๅไธไธชๅ
็ด ใ
const fruits = ["Apple", "Banana", "Orange"];
const removedItem = fruits.pop();
console.log(fruits);
// ["Apple", "Banana"]
console.log(removedItem);
// Orange
ๅคๆณจ๏ผ
pop()
ๅช่ฝ็จไบไปๆฐ็ปไธญ็งป้คๆๅไธไธชๅ
็ด ใ่ฅ่ฆไปๆฐ็ปๆซๅฐพ็งป้คๅคไธชๅ
็ด ๏ผ่ฏทๅ่งไธไธไธช็คบไพใ
ไปๆฐ็ปๆซๅฐพ็งป้คๅคไธชๅ ็ด
ไธ้ข็ไพๅญไฝฟ็จ splice()
ๆนๆณไป fruits
ๆฐ็ปไธญ็งป้คๆๅ 3 ไธชๅ
็ด ใ
const fruits = ["Apple", "Banana", "Strawberry", "Mango", "Cherry"];
const start = -3;
const removedItems = fruits.splice(start);
console.log(fruits);
// ["Apple", "Banana"]
console.log(removedItems);
// ["Strawberry", "Mango", "Cherry"]
ๅฐๆฐ็ปๆชๆญไธบๅ N ไธชๅ ็ด
ไธ้ข็ไพๅญไฝฟ็จ splice()
ๆนๆณๅฐ fruits
ๆฐ็ปๆชๆญๅฐๅชๅฉไธๅ 2 ไธชๅ
็ด ใ
const fruits = ["Apple", "Banana", "Strawberry", "Mango", "Cherry"];
const start = 2;
const removedItems = fruits.splice(start);
console.log(fruits);
// ["Apple", "Banana"]
console.log(removedItems);
// ["Strawberry", "Mango", "Cherry"]
็งป้คๆฐ็ปไธญ็็ฌฌไธไธชๅ ็ด
ไธ้ข็ไพๅญไฝฟ็จ shift()
ๆนๆณไป fruits
ๆฐ็ปไธญ็งป้ค็ฌฌไธไธชๅ
็ด ใ
const fruits = ["Apple", "Banana"];
const removedItem = fruits.shift();
console.log(fruits);
// ["Banana"]
console.log(removedItem);
// Apple
ๅคๆณจ๏ผ
shift()
ๅช่ฝ็จไบไปๆฐ็ปไธญ็งป้ค็ฌฌไธไธชๅ
็ด ใ่ฅ่ฆไปๆฐ็ป็ๅผๅคด็งป้คๅคไธชๅ
็ด ๏ผ่ฏทๅ่งไธไธไธช็คบไพใ
ไปๆฐ็ปๅผๅคด็งป้คๅคไธชๅ ็ด
ไธ้ข็ไพๅญไฝฟ็จ splice()
ๆนๆณไป fruits
ๆฐ็ปไธญ็งป้คๅ 3 ไธชๅ
็ด ใ
const fruits = ["Apple", "Strawberry", "Cherry", "Banana", "Mango"];
const start = 0;
const deleteCount = 3;
const removedItems = fruits.splice(start, deleteCount);
console.log(fruits);
// ["Banana", "Mango"]
console.log(removedItems);
// ["Apple", "Strawberry", "Cherry"]
ๅๆฐ็ปๅผๅคดๆทปๅ ไธไธชๆฐ็ๅ ็ด
ไธ้ข็ไพๅญไฝฟ็จ unshift()
ๆนๆณๅจ็ดขๅผ 0
ๅคๅ fruits
ๆฐ็ปไธญๆทปๅ ไธไธชๆฐๅ
็ด โโไฝฟๅ
ถๆไธบๆฐ็ปไธญๆฐ็็ฌฌไธๅ
็ด ใ
const fruits = ["Banana", "Mango"];
const newLength = fruits.unshift("Strawberry");
console.log(fruits);
// ["Strawberry", "Banana", "Mango"]
console.log(newLength);
// 3
ๆ็ดขๅผ็งป้คๅไธชๅ ็ด
ไธ้ข็ไพๅญไฝฟ็จ splice()
ๆนๆณไป fruits
ๆฐ็ปไธญๅ ้คๅญ็ฌฆไธฒ "Banana"
โโ้่ฟๆๅฎ "Banana"
็็ดขๅผไฝ็ฝฎใ
const fruits = ["Strawberry", "Banana", "Mango"];
const start = fruits.indexOf("Banana");
const deleteCount = 1;
const removedItems = fruits.splice(start, deleteCount);
console.log(fruits);
// ["Strawberry", "Mango"]
console.log(removedItems);
// ["Banana"]
ๆ็ดขๅผ็งป้คๅคไธชๅ ็ด
ไธ้ข็ไพๅญไฝฟ็จ splice()
ๆนๆณไป fruits
ๆฐ็ปไธญๅ ้คๅญ็ฌฆไธฒ "Banana"
ๅ "Strawberry"
โโ้่ฟๆๅฎ "Banana"
็็ดขๅผไฝ็ฝฎ๏ผไปฅๅ่ฆ็งป้ค็ๅ
็ด ๆปๆฐใ
const fruits = ["Apple", "Banana", "Strawberry", "Mango"];
const start = 1;
const deleteCount = 2;
const removedItems = fruits.splice(start, deleteCount);
console.log(fruits);
// ["Apple", "Mango"]
console.log(removedItems);
// ["Banana", "Strawberry"]
ๆฟๆขๆฐ็ปไธญ็ๅคไธชๅ ็ด
ไธ้ข็ไพๅญไฝฟ็จ splice()
ๆนๆณๅฐ fruits
ๆฐ็ปไธญ็ๆๅไธคไธชๅ
็ด ๆฟๆขไธบๆฐๅ
็ด ใ
const fruits = ["Apple", "Banana", "Strawberry"];
const start = -2;
const deleteCount = 2;
const removedItems = fruits.splice(start, deleteCount, "Mango", "Cherry");
console.log(fruits);
// ["Apple", "Mango", "Cherry"]
console.log(removedItems);
// ["Banana", "Strawberry"]
้ๅๆฐ็ป
ไธ้ข็ไพๅญไฝฟ็จ for...of
ๅพช็ฏ้ๅ fruits
ๆฐ็ป๏ผๅฐๆฏไธไธชๅ
็ด ๆๅฐๅฐๆงๅถๅฐใ
const fruits = ["Apple", "Mango", "Cherry"];
for (const fruit of fruits) {
console.log(fruit);
}
// Apple
// Mango
// Cherry
ไฝ for...of
ๅชๆฏ้ๅไปปๆๆฐ็ป็ไผๅคๆนๆณไนไธ๏ผๆดๅคๆนๆณ๏ผๅ่งๅพช็ฏไธ่ฟญไปฃ๏ผๅนถๆฅ็ every()
ใfilter()
ใflatMap()
ใmap()
ใreduce()
ๅ reduceRight()
ๆนๆณโโๅนถๅ่งไธไธไธช็คบไพ๏ผ่ฏฅ็คบไพไฝฟ็จ forEach()
ๆนๆณใ
ๅฏนๆฐ็ปไธญ็ๆฏไธชๅ ็ด ่ฐ็จๅฝๆฐ
ไธ้ข็ไพๅญไฝฟ็จ forEach()
ๆนๆณๅจ fruits
ๆฐ็ปไธญ็ๆฏไธชๅ
็ด ไธ่ฐ็จไธไธชๅฝๆฐ๏ผ่ฏฅๅฝๆฐๅฐๆฏไธชๅ
็ด ไปฅๅๅ
็ด ็็ดขๅผๅทๆๅฐๅฐๆงๅถๅฐใ
const fruits = ["Apple", "Mango", "Cherry"];
fruits.forEach((item, index, array) => {
console.log(item, index);
});
// Apple 0
// Mango 1
// Cherry 2
ๅๅนถๅคไธชๆฐ็ป
ไธ้ข็ไพๅญไฝฟ็จ concat()
ๆนๆณๅฐ fruits
ๆฐ็ปไธ moreFruits
ๆฐ็ปๅๅนถ๏ผ็ๆไธไธชๆฐ็ combinedFruits
ๆฐ็ปใๆณจๆ๏ผfruits
ๅ moreFruits
ไฟๆไธๅใ
const fruits = ["Apple", "Banana", "Strawberry"];
const moreFruits = ["Mango", "Cherry"];
const combinedFruits = fruits.concat(moreFruits);
console.log(combinedFruits);
// ["Apple", "Banana", "Strawberry", "Mango", "Cherry"]
// The 'fruits' array remains unchanged.
console.log(fruits);
// ["Apple", "Banana", "Strawberry"]
// The 'moreFruits' array also remains unchanged.
console.log(moreFruits);
// ["Mango", "Cherry"]
ๅคๅถๆฐ็ป
ไธ้ข็ไพๅญๅฑ็คบไบไป็ฐๆ็ fruits
ๆฐ็ปๅๅปบๆฐๆฐ็ป็ไธ็งๆนๆณ๏ผ้ฆๅ
ไฝฟ็จๅฑๅผ่ฏญๆณ๏ผ็ถๅไฝฟ็จ from()
ๆนๆณ๏ผ็ถๅไฝฟ็จ slice()
ๆนๆณใ
const fruits = ["Strawberry", "Mango"];
// Create a copy using spread syntax.
const fruitsCopy = [...fruits];
// ["Strawberry", "Mango"]
// Create a copy using the from() method.
const fruitsCopy2 = Array.from(fruits);
// ["Strawberry", "Mango"]
// Create a copy using the slice() method.
const fruitsCopy3 = fruits.slice();
// ["Strawberry", "Mango"]
ๆๆๅ
็ฝฎ็ๆฐ็ปๅคๅถๆไฝ๏ผๅฑๅผ่ฏญๆณใArray.from()
ใArray.prototype.slice()
ๅ Array.prototype.concat()
๏ผ้ฝไผๅๅปบๆต
ๆท่ดใๅฆๆไฝ ๆณ่ฆไธไธชๆฐ็ป็ๆทฑๆท่ด๏ผไฝ ๅฏไปฅไฝฟ็จ JSON.stringify()
ๅฐๆฐ็ป่ฝฌๆขๆไธไธช JSON ๅญ็ฌฆไธฒ๏ผ็ถๅไฝฟ็จ JSON.parse()
ๅฐๅญ็ฌฆไธฒ่ฝฌๆขๅไธไธชๅฎๅ
จ็ฌ็ซไบๅๆฐ็ป็ๆฐๆฐ็ปใ
const fruitsDeepCopy = JSON.parse(JSON.stringify(fruits));
ไฝ ่ฟๅฏไปฅไฝฟ็จ structuredClone()
ๆนๆณๅๅปบๆทฑๆท่ด๏ผ่ฏฅๆนๆณ็ไผ็นๆฏๅ
่ฎธๆบไปฃ็ ไธญ็ๅฏ่ฝฌ็งปๅฏน่ฑก่ขซ่ฝฌ็งปๅฐๆฐ็ๅฏๆฌ๏ผ่ไธไป
ไป
ๆฏๅ
้ใ
ๆๅ๏ผ้่ฆ็ๆฏ่ฆ็่งฃ๏ผๅฐ็ฐๆๆฐ็ป่ตๅผ็ปๆฐๅ้ๅนถไธไผๅๅปบๆฐ็ปๆๅ ถๅ ็ด ็ๅฏๆฌใ็ธๅ๏ผๆฐๅ้ๅชๆฏๅฏนๅๆฐ็ป็ๅผ็จๆๅซๅ๏ผไนๅฐฑๆฏ่ฏด๏ผๅๆฅ็ๆฐ็ปๅๅๆฐ็ๅ้ๅๅชๆฏๅไธไธชๅฏน่ฑก็ไธคไธชๅ็งฐ๏ผๅ ๆญคๆปๆฏ่ขซ่ฎก็ฎไธบไธฅๆ ผ็ธ็ญ๏ผใๅ ๆญค๏ผๅฆๆไฝ ๅฏนๅๆฐ็ป็ๅผๆๆฐๅ้็ๅผๅไบไปปไฝๆนๅ๏ผๅฆไธไธชไนไผๆนๅ๏ผ
const fruits = ["Strawberry", "Mango"];
const fruitsAlias = fruits;
// 'fruits' ๅ 'fruitsAlias' ๆฏๅไธไธชๅฏน่ฑก๏ผไธฅๆ ผ็ธ็ญใ
fruits === fruitsAlias; // true
// ๅฏน 'fruits' ๆฐ็ป็ไปปไฝๆดๆนไนไผๆดๆน 'fruitsAlias'ใ
fruits.unshift("Apple", "Banana");
console.log(fruits);
// ['Apple', 'Banana', 'Strawberry', 'Mango']
console.log(fruitsAlias);
// ['Apple', 'Banana', 'Strawberry', 'Mango']
ๅๅปบไบ็ปดๆฐ็ป
ไธ้ข็ไพๅญๅๅปบไบไธไธชไปฃ่กจๆฃ็็ไบ็ปดๅญ็ฌฆไธฒๆฐ็ปใ็ฌฌไธๆญฅๆฏๅฐ board[6][4]
ไธญ็ 'p'
ๅคๅถๅฐ 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);
็ปๆไธบ๏ผ
// The first column is the index 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
ๅๅญ็ฌฆไธฒไน้ด็ๅน้
็ปๆๅฏไปฅๅๅปบไธไธช JavaScript ๆฐ็ป๏ผ่ฏฅๆฐ็ปๅ
ทๆๅน้
ไฟกๆฏ็ๅฑๆงๅๅ
็ด ใ่ฟๆ ท็ๆฐ็ป็ฑ RegExp.prototype.exec()
ๅ String.prototype.match()
่ฟๅใ
ไพๅฆ๏ผ
// ๅน้
ไธไธช d ๅ่ทไธไธชๆๅคไธช b ๅ่ทไธไธช 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 ไธไผ่ขซ่ฎฟ้ฎๅ ไธบๅฎ็็ดขๅผๆฏ 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 ๅ ไธบๅฎ่ถ็
// ไธ find() ๆฏ่พ๏ผๅ่
ๅฐไธๅญๅจ็็ดขๅผ่งไธบๆชๅฎไน๏ผ
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๏ผ็ดขๅผ 0 ๅทฒ็ป่ขซ่ฎฟ้ฎ่ฟ
// ๆฐ็ป๏ผ[e2, e3, e4]๏ผ็ดขๅผ๏ผ1๏ผๅ
็ด ๏ผe3
// ไธไผ่ๅดๅ
e4 ๅ ไธบ e4 ็ฐๅจ็็ดขๅผๆฏ 1๏ผ็ดขๅผ 1 ๅทฒ็ป่ขซ่ฎฟ้ฎ่ฟ
// ๆ็ปๆฐ็ป๏ผ[e2, e4]
// ็ดขๅผ 2 ่ถ็๏ผ็ดขๅผๅฎไธไผ่ขซ่ฎฟ้ฎ
// ไธ find() ๆฏ่พ๏ผๅ่
ๅฐไธๅญๅจ็็ดขๅผ่งไธบๆชๅฎไน๏ผ
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
ๅฏนไบๆ็ดขๅผ้ๅบ่ฟญไปฃ็ๆนๆณ๏ผๆๅ ฅไผๅฏผ่ดๅ ็ด ่ขซ่ทณ่ฟ๏ผๅ ้คไผๅฏผ่ดๅ ็ด ่ขซๅคๆฌก่ฎฟ้ฎ๏ผ่ฐๆดไธ้ข็ไปฃ็ ไปฅๆฅ็ๆๆใ
่ง่
Specification |
---|
ECMAScriptยฎ 2026 Language Specification # sec-array-objects |
ๆต่งๅจๅ ผๅฎนๆง
Loadingโฆ