一、操作方法(改变原数组)
1、push() 向后添加一个元素,返回新数组的长度
let arr = [1, 2, 3, 4]
let x = arr.push(99);
console.log(arr); // [1, 2, 3, 4, 99]
console.log(x); // 5
2、pop() 从后删除一个元素,返回被删除的元素
let arr = [1, 2, 3, 4, 99]
let x = arr.pop()
console.log(arr); // [1, 2, 3, 4]
console.log(x); // 99
3、unshift() 向前添加一个元素,返回新数组的长度
let arr = [1, 2, 3, 4]
let x = arr.unshift(99)
console.log(arr); // [99, 1, 2, 3, 4]
console.log(x); // 5
4、shift() 从前删除一个元素,返回被删除的元素
let arr = [99, 1, 2, 3, 4]
let x = arr.shift(99)
console.log(arr); // [1, 2, 3, 4]
console.log(x); // 99
5、splice(index, len) 从index开始删除len个元素,返回被删除的元素
let arr = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];
let x = arr.splice(2, 3);
console.log(x); // ["c", "d", "e"]
console.log(arr); // ["a", "b", "f", "g"]
6、reverse() 反转
let arr = [1, 2, 3, 4];
console.log(arr.reverse()) // [4, 3, 2, 1]
7、sort() 排序
let arr = [2, 4, 1, 3];
arr.sort((a, b) => a - b); // [1, 2, 3, 4]
arr.sort((a, b) => b - a); // [4, 3, 2, 1]
二、操作方法(不改变原数组)
1、slice(start, end) 提取数组(index >= start && index < end)
let arr = ['a', 'b', 'c', 'd'];
let x = arr.slice(1, 3);
console.log(x); // ["b", "c"]
console.log(arr); // ['a', 'b', 'c', 'd']
2、concat() 连接数组 返回新数组
let arr1 = [1, 2];
let arr2 = [3, 4];
let res = arr1.concat(arr2);
// 可以连接多个 let res = arr1.concat(arr2, arr3, ...)
console.log(res) // [1, 2, 3, 4];
// 还能这样
let arr4 = [1, 2, 3, 4, 5, 6]
let arr5 = arr4.concat(1,'xxx', {a: 1})
console.log(arr5) // [1, 2, 3, 4, 5, 6, 1, "xxx", {a: 1}]
3、join() 拼接字符串
let arr = [1, 2, 3];
console.log(arr.join('-')) // "1-2-3"
console.log(arr.join('')) // "123"
三、遍历
1、forEach() 没有返回值
let arr = [1, 2, 3, 4];
arr.forEach((item, index) => {
console.log(item, index) // 1 0 2 1 3 2 4 3
})
2、map() 返回一个新数组
let arr = [1, 2, 3, 4];
let res = arr.map((item, index) => {
return item + 1;
});
console.log(arr); // [1, 2, 3, 4]
console.log(res); // [2, 3, 4, 5]
3、filter() 返回满足条件的新数组
let arr = [1, 2, 3, 4];
let res = arr.filter((item, index) => {
return item >= 2;
});
console.log(arr); // [1, 2, 3, 4]
console.log(res); // [2, 3, 4]
4、some() 其中有满足条件的,返回true
let arr = [1, 2, 3, 4];
let res = arr.some((item, index) => {
return item > 3;
});
console.log(res); // true
5、every() 其中每一项都满足条件的,返回true
let arr = [1, 2, 3, 4];
let res = arr.every((item, index) => {
return item > 3;
});
console.log(res); // false
let res2 = arr.every((item, index) => {
return item >= 1;
});
console.log(res2); // true
6、find() 返回第一个满足条件的值
let arr = [10, 20, 30, 40];
let res = arr.find((item, index) => {
return item > 20;
});
console.log(res); // 30
7、findIndex() 返回第一个满足条件的索引
let arr = [10, 20, 30, 40];
let res = arr.findIndex((item, index) => {
return item > 20;
});
console.log(res); // 2
8、reduce() 接收一个函数作为累加器,从左到右开始计算,最终返回一个累计的值
var arr = [1,2,3,4];
// total: 必需。初始值, 或者计算结束后的返回值
// currentValue: 必需。当前元素
// currentIndex: 可选。当前元素的索引
// arr:可选。当前元素所属的数组对象。
var res = arr.reduceRight((total, currentValue, currentIndex, arr)=>{
console.log("total:", total);
console.log("currentValue:", currentValue);
return total + currentValue;
}, 10) // 10:可选。传递给函数的初始值
console.log("res: ", res);
// 输出
// total: 10
// currentValue: 4
// total: 14
// currentValue: 3
// total: 17
// currentValue: 2
// total: 19
// currentValue: 1
// res: 20
9、reduceRight() 同上,从右至左
------- 先就这样,想起再说 -------
------- 下面就是乱七八糟的了 -------
js数组去重 循环啥的就不列了,大家也都知道(下面的估计也都知道)
var arr = [1, 1, 2, 2, 3, 3, 4, 4]
var res = Array.from(new Set(arr));
var res2 = [...new Set(arr)]
console.log(res); // [1, 2, 3, 4]
console.log(res2); // [1, 2, 3, 4]
------- 先就这样,想起再说 -------
------- 更新的话,想起再说 -------
告辞。