以下或许是一些在实际工作中你或许会使用到的数组方法。
let arr1 = ["游小北", "youxiaobei", "JaketYou"];
let res1 = arr1.splice(0, 1, "增加一个元素", "再增加一个元素", '又增加一个元素');
console.log(res1); // ['游小北'],得到删除的元素
console.log(arr1); // ['增加一个元素', '再增加一个元素', '又增加一个元素', 'youxiaobei', 'JaketYou']
let arr2 = ["游小北", "youxiaobei", "JaketYou"];
let res2 = arr2.slice(1, 3);
console.log(res2); //[ 'youxiaobei', 'JaketYou' ]
console.log(arr2); //[ '游小北', 'youxiaobei', 'JaketYou' ] // 不改变原数组
let arr3 = ["游小北", "youxiaobei", "JaketYou"];
let res3 = arr3.pop();
console.log(res3); // JaketYou
console.log(arr3); // [ '游小北', 'youxiaobei' ]
let arr4 = ["游小北", "youxiaobei", "JaketYou"];
let res4 = arr4.shift();
console.log(res4); // 游小北
console.log(arr4); //[ 'youxiaobei', 'JaketYou' ]
console.log(arr4.unshift('jk')) // 3 // 数组的长度
let arr5 = [1, 2, 3];
// 第一种情况,加默认值,会多一次循环
const res = arr5.reduce((pre, item, index, arr) => {
return pre + item;
}, 10);
console.log(res); //16
// 第二种不加默认值,少一次循环
const res5 = arr5.reduce((pre, item, index, arr) => {
return pre + item;
});
console.log(res5); // 6
let arr6 = [1, 2, 3];
let sum = 0;
arr6.forEach((item, index, arr) => {
sum = sum + item;
});
console.log(sum); // 6
let arr1 = [1, 2, 3];
let arr2 = [4, 5, 6];
let arr3 = [7, 8, 9];
let newArr = arr1.concat(arr2, arr3);
console.log(newArr); // 输出:[1, 2, 3, 4, 5, 6, 7, 8, 9]
let newArr2 = arr1.concat(4, 5);
console.log(newArr2); // 输出:[1, 2, 3, 4, 5]
let arr8 = [1, 2, 3, 4, 5];
let hasEven = arr8.some((element) => {
return element % 2 === 0;
});
console.log(hasEven); // 输出:true,因为2是偶数
let arr8 = [1, 2, 3, 4, 5];
let allPositive = arr8.every((element) => {
return element > 0;
});
console.log(allPositive); // 输出:true,因为所有元素都大于0
let arr10 = [1, 2, 3, 4, 5];
let evenNumber = arr10.find((element) => {
return element % 2 === 0;
});
console.log(evenNumber); // 输出:2,因为2是数组中的第一个偶数
let arr10 = [1, 2, 3, 4, 5];
let evenIndex = arr10.findIndex((element) => {
return element % 2 === 0;
});
console.log(evenIndex); // 输出:1,因为2是数组中的第一个偶数,其索引为1
let arr12 = [1, 2, 3, 4, 5];
let joinedString = arr12.join("-");
console.log(joinedString); // 输出:"1-2-3-4-5"
let arr12 = [1, 2, 3, 4, 5];
let arrayString = arr12.toString();
console.log(arrayString); // 输出:"1,2,3,4,5"
let arr14 = [1, 2, 3, 4, 2, 5, 2];
let firstIndex = arr14.indexOf(2);
console.log(firstIndex); // 输出:1,因为2第一次出现在索引1处
let arr14 = [1, 2, 3, 4, 2, 5, 2];
let lastIndex = arr14.lastIndexOf(2);
console.log(lastIndex); // 输出:6,因为2最后一次出现在索引6处
let arr16 = [1, 2, 3, 4, 5];
let squaredArr = arr16.map(function (element) {
return element * element;
});
console.log(squaredArr); // 输出:[1, 4, 9, 16, 25]
let arr17 = [1, 2, 3, 4, 5];
arr17.reverse();
console.log(arr17); // 输出:[5, 4, 3, 2, 1]
let arr18 = [1, 2, 3, 4, 5];
let filteredArr = arr18.filter(function (element) {
return element > 2;
});
console.log(filteredArr); // 输出:[3, 4, 5]
function compareNumbers(a, b) {
return b - a;
}
let arr19 = [4, 2, 1, 3, 5];
arr19.sort();
console.log(arr19); // 输出:[1, 2, 3, 4, 5]
arr19.sort(compareNumbers);
console.log(arr19); // 输出:[5, 4, 3, 2, 1]
let arr20 = [1, 2, 3, 4, 5];
// 示例:使用 includes 方法判断数组是否包含元素
let result = arr20.includes(3);
let result1 = arr20.includes(3,2);
let result2 = arr20.includes(3,3);
console.log(result); // 输出:true
console.log(result1); // 输出:true
console.log(result2); // 输出:false
const arr21 = [1, 2, 3, 4, 5];
console.log(arr21.with(2, 6)); // [1, 2, 6, 4, 5]
console.log(arr21); // [1, 2, 3, 4, 5]
let arr22 = [1, 2, 3, 4, 5];
console.log(Array.isArray(arr22)); // 输出:true
let arr23 = [1, [2, 3], [4, [5]]];
console.log(arr23.flat()) // [1, 2, 3, 4, [5]]
console.log(arr23.flat(2)) // [1, 2, 3, 4, 5]
let arrInfinite = [1, [2, 3], [4, [5,[6]]]];
console.log(arrInfinite.flat(2)) // [1, 2, 3, 4, 5, [6]]
console.log(arrInfinite.flat(Infinity)) // [1, 2, 3, 4, 5, 6]
let arr24 = [1, 2, 3];
let arr24fm = [1, 2, 3, [4]]
let arr24fmNan = [1, 2, 3, [4, 5]]
const res24 = arr24.flatMap(x => [x, x * 2])
const res24fm = arr24fm.flatMap(x => [x, x * 2])
const res24fmNan = arr24fmNan.flatMap(x => [x, x * 2])
console.log(res24) // [1, 2, 2, 4, 3, 6]
console.log(res24fm) // [1, 2, 2, 4, 3, 6, [4], 8]
console.log(res24fmNan) // [1, 2, 2, 4, 3, 6, [4, 5], NaN]
let arr25 = ['a', 'b', 'c'];
const iterator25 = arr25.keys(); // 示例:获取数组arr25中每个索引键的迭代器对象
console.log('i', iterator25.next()); // i { value: 0, done: false }
console.log('i', iterator25.next()); // i { value: 1, done: false }
console.log('i', iterator25.next()); // i { value: 2, done: false }
console.log('i', iterator25.next()); // i { value: undefined, done: true } // done 为 true 表示迭代结束
let arr26 = ['a', 'b', 'c'];
let iterator26 = arr26.values();
console.log(iterator26.next()); // 输出:{value: 'a', done: false}
console.log(iterator26.next()); // 输出:{value: 'b', done: false}
console.log(iterator26.next()); // 输出:{value: 'c', done: false}
console.log(iterator26.next()); // 输出:{value: undefined, done: true}
let arr27 = ['a', 'b', 'c'];
let iterator27 = arr27.entries();
console.log(iterator27.next()); // 输出:{value: [0, 'a'], done: false}
console.log(iterator27.next()); // 输出:{value: [1, 'b'], done: false}
console.log(iterator27.next()); // 输出:{value: [2, 'c'], done: false}
console.log(iterator27.next()); // 输出:{value: undefined, done: true}
console.log(Array.from('foo')); // 输出:["f", "o", "o"]
console.log(Array.from([1, 2, 3], (x) => x + x)); // 输出:[2, 4, 6]
console.log(Array.of('1', 2, '3')) // ["1", 2, "3"]
console.log(Array.of(0)) // [0]
console.log(Array.of()) // []