增
前三种会对原数组产生影响,第四种不会产生影响。
- push()
- unshift()
- splice()
- concat()
push()
push()方法接受任意数量的参数,并将它们添加到数组末尾,原数组将会被改变,返回的是新数组的长度。
let colors = [];
let count = colors.push('red','green','yellow')
console.log(colors);
console.log(count);
输出结果:
[ 'red', 'green', 'yellow' ]
3
unshift()
unshift()将会在数组开头添加任意多个值,返回新数组的长度。
let colors = ['bule'];
let count = colors.unshift('red','green','yellow')
console.log(colors);
console.log(count);
输出结果:
[ 'red', 'green', 'yellow', 'bule' ]
4
splice()
splice()用作增加数组成员时传入三个参数,分别是开始位置,要操作的元素数量,插入的元素,返回一个空数组。
let colors = ['red','green','yellow'];
let removed = colors.splice(1,0,'blue')
console.log(colors);
console.log(removed);
输出结果:
[ 'red', 'blue', 'green', 'yellow' ]
[]
concat()
concat()会创建一个当前数组的副本,然后再把它得到的参数添加到副本的末尾,然后返回这个新构建的数组,不会影响原数组。
let colors = ['red','green','yellow'];
let colors2 = colors.concat('blue',['pink','purple'])
console.log(colors);
console.log(colors2);
输出结果:
[ 'red', 'green', 'yellow' ]
[ 'red', 'green', 'yellow', 'blue', 'pink', 'purple' ]
删
前三种会影响原数组,最后一种不影响原数组:
- pop()
- shift()
- splice()
- slice()
pop()
pop()方法删除数组的最后一项,返回被删除的项。
let colors = ['red','green','yellow'];
let colors2 = colors.pop()
console.log(colors);
console.log(colors2);
输出结果:
[ 'red', 'green' ]
yellow
shift()
shift()删除数组的第一项,返回被删除的项。
let colors = ['red','green','yellow'];
let colors2 = colors.shift()
console.log(colors);
console.log(colors2);
输出结果:
[ 'green', 'yellow' ]
red
splice()
splice()用作删除数组成员时传入两个参数,第一个是开始位置,第二个是要操作的元素数量,
返回包含被删除元素的数组。
let colors = ['red','green','yellow'];
let colors2 = colors.splice(0,2)
console.log(colors);
console.log(colors2);
输出结果:
[ 'yellow' ]
[ 'red', 'green' ]
slice()
slice()可传入两个参数,第一个是开始位置,第二个是结束位置,第二课参数为可选,则默认作用范围是从开始位置一直到结束,不会影响原数组,返回包含选中元素的新数组。
注:两个参数的作用区间可以理解为取到左闭右开区间。
let colors = ['red','green','yellow'];
let colors2 = colors.slice(1)
let colors3 = colors.slice(1,2)
console.log(colors);
console.log(colors2);
console.log(colors3);
输出结果:
[ 'red', 'green', 'yellow' ]
[ 'green', 'yellow' ]
[ 'green' ]
改
即修改原数组内容,常用splice()
splice()传入三个参数,分别是开始位置,要删除的元素数量,要插入的任意个元素,返回包含删除元素的数组。
let colors = ['red','green','yellow','pink'];
let colors2 = colors.splice(1,2,'purple','orange')
console.log(colors);
console.log(colors2);
输出结果:
[ 'red', 'purple', 'orange', 'pink' ]
[ 'green', 'yellow' ]
查
即查找元素,返回元素坐标或者元素值
- indexof()
- includes()
- find()
indexof()
indexof()返回要查找的元素再数组中的位置,如果没找到会返回-1
let num = [1,2,3,4,5];
let result = num.indexOf(3)
let result2 = num.indexOf(6)
console.log(result);
console.log(result2);
输出结果:
2
-1
includes()
返回要查找的元素在数组中的位置,找到返回true,否则返回false.
let num = [1,2,3,4,5];
let result = num.includes(3)
let result2 = num.includes(6)
console.log(result);
console.log(result2);
输出结果:
true
false
find()
find()对数组中的每个元素都调用一次函数执行,然后返回第一个匹配到的元素,没有符合的则返回undefined,之后的元素并不会执行回调,不会影响原数组。
let num = [1,2,3,4,5];
let result = num.find(item => item>2 )
let result2 = num.find(item => item>6)
console.log(result);
console.log(result2);
输出结果:
3
undefined