前端开发的看家本领——对JS数组的操作

举报
小滴课堂 发表于 2022/03/30 14:47:33 2022/03/30
【摘要】 我将数组的操作方法分为影响原数组和不影响原数组的分类总结如下影响原数组push()1.接收任意数量的参数,并将他们添加到数组的末尾,并返回最新长度2.用法:const arr = [0, 1, 2, 3];const newarr = arr.push(4, 5, 6);console.log(arr);//[0,,1,2,3,4,5,6]console.log(newarr);//7uns...

我将数组的操作方法分为影响原数组不影响原数组的分类

总结如下

影响原数组

push()

1.接收任意数量的参数,并将他们添加到数组的末尾,并返回最新长度

2.用法:

const arr = [0, 1, 2, 3];
const newarr = arr.push(4, 5, 6);
console.log(arr);//[0,,1,2,3,4,5,6]
console.log(newarr);//7

unshift()

1.在数组的开头添加任意多个值,然后返回新的数组长度

2.用法:

const arr = [0, 1, 2, 3];
const newarr = arr.unshift(4, 5, 6);
console.log(arr); //[4,5,6,0,1,2,3]
console.log(newarr);//7

splice()

1.传入三个参数,分别是起始位置,要删除的元素数量,插入的元素

2.返回的是被删除的元素

3.用法:

const arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
const newarr = arr.splice(2, 3, 'red', 'yellow', 'blue');
console.log(arr);[ 0, 1, 'red', 'yellow', 'blue', 5, 6, 7, 8, 9 ]
console.log(newarr);//[ 2, 3, 4 ]

pop()

1.删除数组的最后一项

2.减少数组的长度并影响原数组

3.返回删除的那个元素

4.用法:

const arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
const newarr = arr.pop();
console.log(arr);//[0, 1, 2, 3, 4, 5, 6, 7, 8]
console.log(newarr);//9

shift()

1.删除数组的第一项

2.减少数组的长度并影响原数组

3.返回被删除的那个元素

4.用法:

const arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
const newarr = arr.shift();
console.log(arr);//[1, 2, 3, 4, 5,6, 7, 8, 9]
console.log(newarr);//0

reverse()

1.将数组的元素方向调转排列

2.用法:

const arr = [3, 6, 9, 2, 5, 8, 1, 4, 7]
const newarr = arr.reverse()
console.log(arr);
console.log(newarr);

sort()

1.传入一个比较函数判断数组是从大到小或者从小到大排列

用法:

const arr = [3, 6, 9, 2, 5, 8, 1, 4, 7, 11, 22]
function fn(num1, num2) {
    if (num1 > num2) {
        return -1
    } else if (num1 < num2) {
        return 1
    } else {
        return 0
    }
}
const newarr = arr.sort(fn)
console.log(arr);//[22, 11, 9, 8, 7,6,  5, 4, 3, 2,6,  5, 4, 3, 2,]
console.log(newarr);//[22, 11, 9, 8, 7,6,  5, 4, 3, 2,6,  5, 4, 3, 2,]

不影响原数组

concat()

1.创建一个当前数组的副本,把参数添加到副本的末尾

2.返回新数组

3.用法:

const arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
const newarr = arr.concat('red', 'yellow', 'blue');
console.log(arr);//[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
console.log(newarr);//[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'red', 'yellow', 'blue']

slice()

1.创建一个包含原有数组中一个或多个元素的新数组

2.slice(起始位置,最后位置),在一个新数组返回数组的起始位置到最后位置的数字

用法:

const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
const newarr = arr.slice(2);
const newarr2 = arr.slice(2, 4);

console.log(arr);//[1, 2, 3, 4, 5, 6, 7, 8, 9];
console.log(newarr);//[3, 4, 5, 6, 7, 8, 9]]
console.log(newarr2);//[3, 4]

indexOf()

1.返回要查找的元素在数组中的位置,如果数组中有相同的即返回查找到的第一个

2.找到返回元素在数组中的下标,没找到返回-1

用法:

const arr = [0, 25, 33, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
const num = arr.indexOf(99)
const num2 = arr.indexOf(0)
console.log(arr);//[0, 25, 33, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
console.log(num);//-1
console.log(num2);//0

includes()

1.返回要查找的元素在数组中的位置

2.找到返回true,没找到false

3.用法:

const arr = [0, 25, 33, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
const num = arr.includes(99)
const num2 = arr.includes(0)
console.log(arr);//[0, 25, 33, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
console.log(num);//false
console.log(num2);//true

find()

1.返回符合条件的第一个元素,不符合返回undefined

2.对于空数组,函数是不会执行的

3.用法:

const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]

function fn(num) {
    return num > 33
}

function fn1(num) {
    return num > 2
}
const someone = arr.find(fn)
const someone1 = arr.find(fn1)
console.log(arr);//[1, 2, 3, 4, 5, 6, 7, 8, 9]
console.log(someone);//undefined
console.log(someone1);//3

join()

1.接收一个字符串分隔符,返回以该字符分隔的字符串

2.用法:

const arr = [3, 6, 9, 2, 5, 8, 1, 4, 7, 11, 22]

const newarr = arr.join('//')

console.log(arr);//[3, 6, 9, 2, 5, 8, 1, 4, 7, 11, 22]
console.log(newarr);//3//6//9//2//5//8//1//4//7//11//22

some()

1.对数组每一项都运行传入的函数,如果有一项达到标准返回true,则这个方法为true

2.item是元素,index是元素的下标,array当前元素属于的数组对象

3.用法:

let arr = [3, 6, 9, 2, 5, 8, 1, 4, 7];

let newarr = arr.some((item, index, array) => item > 5);

console.log(arr) // [3, 6, 9, 2, 5, 8, 1, 4, 7]
console.log(newarr) // true

every()

1.对数组每一项都运行传入的函数,如果有一项达到标准返回false,则这个方法为false

2.item是元素,index是元素的下标,array当前元素属于的数组对象

3.用法:

let arr = [3, 6, 9, 2, 5, 8, 1, 4, 7];
let newarr = arr.some((item, index, array) => item > 5);
console.log(arr) // [3, 6, 9, 2, 5, 8, 1, 4, 7]
console.log(newarr) // false

forEach()

1.遍历数组,for循环的加强版

2.item是数组的每一项,index是数组的每一项下标,array是当前元素属于的数组对象

3.用法:

 let arr = [9, 6, 3];

        arr.forEach(function(item, index, newarr) {
            console.log(item);
            console.log(index);
            console.log(newarr);
        });

        console.log(arr);

filter()

1.对数组每一项都运行传入的函数,符合条件的组成新数组后返回

2.item是数组的每一项,index是数组的每一项下标,array是当前元素属于的数组对象

3.用法:

let arr = [3, 6, 9, 2, 5, 8, 1, 4, 7];
const newarr = arr.filter((item, index, array) => item > 3)
console.log(arr);//[3, 6, 9, 2, 5, 8, 1, 4, 7]
console.log(newarr);//[ 6, 9, 5, 8, 4, 7 ]

map()

1.对数组每一项都运行传入的函数,符合条件的组成新数组后返回

2.item是数组的每一项,index是数组的每一项下标,array是当前元素属于的数组对象

3.返回每次调用函数的结果组成的新数组

4.用法:

let arr = [3, 6, 9, 2, 5, 8, 1, 4, 7];

const newarr = arr.map((item, index, array) => item > 3)

console.log(arr);//[3, 6, 9, 2, 5, 8, 1, 4, 7]
console.log(newarr);//大于3为true,小于为false
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。