1.向数组开头添加元素
unshift() | 向数组的开头添加一个或更多元素,并返回新的长度。 |
function _unshift(array,value) {
array.unshift(value);
return array;
}
2.向数组末尾添加元素
push() | 向数组的末尾添加一个或更多元素,并返回新的长度。 |
function _push(array,value) {
array.push(value);
return array;
}
3.
描述
在数组 arr 末尾添加元素 item。结果返回新的数组。注意:不要直接修改数组 arr!!!
示例1
输入:
[1, 2, 3, 4], 10
输出:
[1, 2, 3, 4, 10]
(1)slice(start,end)方法,选取数组从start到end的部分,返回新的数组,在新数组上面添加元素
slice() | 选取数组的一部分,并返回一个新数组。 |
function append(arr, item) {
var a = arr.slice(0);
a.push(item);
return a;
}
(2)直接使用concat(),它返回的是连接后的数组
方法 | 描述 |
---|---|
concat() | 连接两个或更多的数组,并返回结果。 |
function append(arr, item) {
return arr.concat(item);
}
4.向数组指定位置添加
在数组 arr 的 index 处添加元素 item。不要直接修改数组 arr,结果返回新的数组
示例1
输入:
[1, 2, 3, 4], 'z', 2
复制输出:
[1, 2, 'z', 3, 4]
splice() | 从数组中添加或删除元素。 |
splice(index,howmany,item)有三个参数,
(1)index规定为从何处开始添加或者删除元素的下标
(2)howmany规定为删除多少个元素,可以是0,1,2,3(如果不规定,会删除从index到结尾的所有元素)
(3)item是要添加到数组的新元素
function insert(arr, item, index) {
var a = arr.slice(0);
a.splice(index,0,item);
return a;
}
5.
描述
移除数组 arr 中的所有值与 item 相等的元素。不要直接修改数组 arr,结果返回新的数组。
示例1
输入:
[1, 2, 3, 4, 2], 2
输出:
[1, 3, 4]
(1)创建一个空的数组,如果索引值不等于item,则将它插入到空数组中arr1中,返回它
function remove(arr, item) {
const arr1 = [];
for(var i = 0; i < arr.length; i++){
if(arr[i] !== item){
arr1.push(arr[i]);
}
}
return arr1;
}
(2)利用filter()方法
filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
filter() 不会改变原始数组。
filter() | 检测数值元素,并返回符合条件所有元素的数组。 |
function remove(arr, item) {
return arr.filter(function(x){
return x!==item;
});
}
6.
描述
移除数组 arr 中的所有值与 item 相等的元素,直接在给定的 arr 数组上进行操作,并将结果数组返回
示例1
输入:
[1, 2, 2, 3, 4, 2, 2], 2
输出:
[1, 3, 4]
function removeWithoutCopy(arr, item) {
var count = 0;
for(var i = 0; i <arr.length; i++){
if(arr[i]==item){
arr.splice(i,1);//如果i的索引值等于item,则删除从开始的1个元素
i--;
}
}
return arr;
}
7.
描述
删除数组 arr 最后一个元素。不要直接修改数组 arr,结果返回新的数组
示例1
输入:
[1, 2, 3, 4]
输出:
[1, 2, 3]
(1)
function truncate(arr) {
var a =arr.slice(0);
a.pop();
return a;
}
a.pop()是删除数组最后一个元素的方法,
return arr.pop()直接删除最后一个元素并返回删除后的数组。
(2)可以使用slice()直接返回
删除数组 arr 最后一个元素
return arr.slice(0,arr.length-1);
删除数组 arr 第一个元素
return arr.slice(1);
总结:使用unshift(),push(),pop(),shift()会改变数组长度,在某些情况下可以和slice(),splice(),concat()配合使用。