JavaScript中最常用的几种数组操作
- 作者: 五速梦信息网
- 时间: 2026年03月19日 18:11
const arr = [1, 2, 3];
console.log(arr.length); // 3const arr = [1, 2, 3];
arr.length = 2;
arr.forEach(i => console.log(i)); // 1 2const arr = [];
arr.length = 100;
console.log(arr) // [undefined, undefined, undefined ...]const arr = [1, 2];
arr.length = 0;
console.log(arr) // []const arr = [1, 2, 3];
arr.splice(2, 1, 4); // 将索引 2 开始的 1 元素更改为 4
console.log(arr); // [1, 2, 4]
arr.splice(0, 2, 5, 6) // 将索引 0 开始的 2 个元素更改为 5 和 6
console.log(arr); // [5, 6, 4]const arr = [1, 2, 3, 4, 5, 6];
// 所有奇数的平方
const arr2 = arr.map(item => item % 2 == 0 ? item : item*item);
console.log(arr2); // [1, 2, 9, 4, 25, 6];const arr = [1, 2, 3, 4, 5, 6, 7];
// 过滤掉所有奇数
const arr2 = arr.filter(item => item % 2 == 0);
console.log(arr2); // [2, 4, 6];const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];
const arr3 = arr1.concat(arr2);
console.log(arr3 ); // [1, 2, 3, 4, 5, 6]const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];
const arr3 = [...arr1, ...arr2];
console.log(arr3 ); // [1, 2, 3, 4, 5, 6]const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];
Array.prototype.push.apply(arr1, arr2);
console.log(arr1); // [1, 2, 3, 4, 5, 6]const arr1 = [1, 2, 3];
const arr2 = arr1;
arr2[0] = 4;
arr2[1] = 2;
arr2[2] = 0;
console.log(arr1); // [4, 2, 0]const arr1 = [1, 2, 3];
const arr2 = arr1.slice(0);
arr2[0] = 4;
arr2[1] = 2;
arr2[2] = 0;
console.log(arr1); // [1, 2, 3]
console.log(arr2); // [4, 2, 0]const arr1 = [1, 2, 3];
const arr2 = [...arr1];
arr2[0] = 4;
arr2[1] = 2;
arr2[2] = 0;
console.log(arr1); // [1, 2, 3]
console.log(arr2); // [4, 2, 0]const arr1 = [1, 2, 3];
const arr2 = [].concat(arr1);
arr2[0] = 4;
arr2[1] = 2;
arr2[2] = 0;
console.log(arr1); // [1, 2, 3]
console.log(arr2); // [4, 2, 0]const arr1 = [1, 1, 2, 3, 1, 5, 9, 4, 2];
const arr2 = arr1.filter((item, index, arr) => arr.indexOf(item) == index);
console.log(arr2); // [1, 2, 3, 5, 9, 4]const arr1 = [1, 1, 2, 3, 1, 5, 9, 4, 2];
const arr2 = arr1.reduce(
(acc, item) => acc.indexOf(item) == -1 ? [...acc, item]: acc,
[] // 初始化当前值
);
console.log(arr2); // [1, 2, 3, 5, 9, 4]const arr1 = [1, 1, 2, 3, 1, 5, 9, 4, 2];
const arr2 = [...(new Set(arr1))];
console.log(arr2); // [1, 2, 3, 5, 9, 4]Array.prototype.slice.call(arguments);
Array.prototype.concat.apply([], arguments);console.log('string'.split('')); // ["s", "t", "r", "i", "n", "g"]
console.log(Array.from('string')); // ["s", "t", "r", "i", "n", "g"]console.log(Array.from(new Set(1,2,3))); // [1,2,3]
console.log([...(new Set(1,2,3))]); // [1,2,3]const arr = [1, 2, 3];
for (let i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
// 1 2 3const arr = [1, 2, 3];
for (let i in arr) {
if(arr.hasOwnProperty(i)) {
console.log(arr[i]);
}
}
// 1 2 3const arr = [1, 2, 3];
for (let i of arr) {
console.log(i);
}
// 1 2 3[1, 2, 3].forEach(i => console.log(i))
// 1 2 3const arr = [1,2,3];
let i = -1;
const length = arr.length;
while(++i < length) {
console.log(arr[i])
}
// 1 2 3while > for > for-of > forEach > for-in
// ES5
[1, 2, 3].some((i) => i == 1);
// ES6
[1, 2, 3].find((i) => i == 1);
[1, 2, 3].findIndex((i) => i == 1);const arr1 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
const arr2 = [].concat.apply([], arr1);
console.log(arr2); // [1, 2, 3, 4, 5, 6, 7, 8, 9]const arr1 = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [[1, 2, 3], [4, 5, 6], [7, 8, 9]]];
const arr2 = [].concat.apply([], arr1);
console.log(arr2); // [1, 2, 3, 4, 5, 6, 7, 8, 9, [1, 2, 3], [4, 5, 6], [7, 8, 9]]function flatten(arr) {
return arr.reduce((flat, toFlatten) => {
return flat.concat(Array.isArray(toFlatten) ? flatten(toFlatten) : toFlatten);
}, []);
}
const arr1 = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [[1, 2, 3], [4, 5, 6], [7, 8, 9]]];
const arr2 = flatten(arr1);
console.log(arr2); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9]const arr1 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
const arr2 = arr1.flat();
console.log(arr2); // [[1, 2, 3], [4, 5, 6], [7, 8, 9]]const arr1 = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [[1, 2, 3], [4, 5, 6], [7, 8, 9]]];
const arr2 = arr1.flat(Infinity);
console.log(arr2); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9]const arr1 = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [[1, 2, 3], [4, 5, 6], [7, 8, 9]]];
const arr2 = arr1.toString().split(',').map(n => parseInt(n, 10));
console.log(arr2); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9]const arr = [1, 2, 3, 4, 5, 6];
arr.push(7)
console.log( arr ); // [1, 2, 3, 4, 5, 6, 7]const arr = [1, 2, 3, 4, 5, 6];
arr.unshift(0)
console.log( arr ); // [0, 1, 2, 3, 4, 5, 6]const arr = [1, 2, 3, 4, 5];
arr.splice(1, 0, 10)
console.log(arr); // [1, 10, 2, 3, 4, 5]const arr1 = [1, 2, 3, 4, 5];
const arr2 = arr1.concat(6);
console.log(arr2); // [1, 2, 3, 4, 5, 6]const arr = [1, 2, 3, 4, 5, 6];
arr.length = 4;
console.log( arr ); // [1, 2, 3, 4]const arr = [1, 2, 3, 4, 5, 6];
arr.pop();
console.log( arr ); // [1, 2, 3, 4, 5]const arr = [1, 2, 3, 4, 5, 6];
arr.shift();
console.log( arr ); // [2, 3, 4, 5, 6]const arr1 = [1, 2, 3, 4, 5];
arr1.splice(1);
console.log(arr1); // [1];
const arr2 = [1, 2, 3, 4, 5];
arr2.splice(1, 2)
console.log(arr2); // [1, 4, 5]
const arr3 = [1, 2, 3, 4, 5];
arr3.splice(1, 1)
console.log(arr3); // [1,3, 4, 5]const arr = [1, 2, 3, 4, 5];
arr.splice(1, 0, 10)
console.log(arr); // [1, 10, 2, 3, 4, 5]const arr = [1, 2, 3, 4, 5];
arr.splice(1, 1, 10)
console.log(arr); // [1, 10, 3, 4, 5]const arr = [1, 2, 3, 4, 5];
delete arr[1]
console.log(arr); // [1, empty, 3, 4, 5]const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0];
const filtered = arr.filter((value, index, arr) => value > 5);
console.log(filtered); // [6, 7, 8, 9]
console.log(arr); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]let arr = [1,2,3];
arr = [];let arr = [1,2,3];
arr.length = 0;let arr = [1,2,3];
arr.splice(0);const arr = [1, 2, 3, 4, 5, 6];
while (arr.length) { arr.pop(); }
console.log(arr); // [][1, false, '', NaN, 0, [], {}, '123'].filter(Boolean) // [1, [], {}, '123'][1, false, '', NaN, 0, [], {}, '123'].some(Boolean) // true[1, false, '', NaN, 0, [], {}, '123'].every(Boolean) // falseArray(6).join('0'); // '00000' 注意:如果要补5个0,要写6,而不是5。
Array(5).fill('0').join('') // '00000'Math.max.apply(null, [1, 2, 3, 4, 5]) // 5
Math.min.apply(null, [1, 2, 3, 4, 5]) // 1const str1 = 'string';
const str2 = str1.split('').reverse().join('');
console.log(str1 === str2); // false const arr = [1];
// 入队
arr.push(2);
console.log('入队元素:', arr[arr.length -1]); // 2
// 出队
console.log('出队元素:', arr.shift()); // 1const arr = [1, 2, 3, 4, 5];
console.log(arr[arr.length - 1]); // 5 const arr1 = [1, 2, 3, 4, 5];
function createNegativeArrayProxy(array) {
if (!Array.isArray(array)) {
throw new TypeError('Expected an array');
}
return new Proxy(array, {
get: (target, prop, receiver) => {
prop = +prop;
return Reflect.get(target, prop < 0 ? target.length + prop : prop, receiver);;
}
})
}
const arr2 = createNegativeArrayProxy(arr1);
console.log(arr1[-1]) // undefined
console.log(arr1[-2]) // undefined
console.log(arr2[-1]) // 5
console.log(arr2[-2]) // 4 - 上一篇: 在线点名器网页版(随机点名系统)
- 下一篇: 人员随机分组器(活动分组工具)
相关文章
-
在线点名器网页版(随机点名系统)
在线点名器网页版(随机点名系统)
- 互联网
- 2026年03月19日
-
日期时间差计算器(时间间隔计数器)
日期时间差计算器(时间间隔计数器)
- 互联网
- 2026年03月19日
-
存款收益计算器(定期/活期/存本取息/通知存款)
存款收益计算器(定期/活期/存本取息/通知存款)
- 互联网
- 2026年03月19日
-
人员随机分组器(活动分组工具)
人员随机分组器(活动分组工具)
- 互联网
- 2026年03月19日
-
Flutter混编工程之通讯之路
Flutter混编工程之通讯之路
- 互联网
- 2026年03月19日
-
generator 类
generator 类
- 互联网
- 2026年03月19日






