继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

js数组方法总结

雨夜灬聆风
关注TA
已关注
手记 1
粉丝 1
获赞 0

一、操作方法(改变原数组)

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]

------- 先就这样,想起再说 -------

------- 更新的话,想起再说 -------

告辞。

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP