1.给数组添加元素
1.1 在数组末尾添加一个固定元素
在数组 arr 末尾添加元素 item。不要直接修改数组 arr,结果返回新的数组
输入:[1, 2, 3, 4], 10
输出:[1, 2, 3, 4, 10]
方法:
- 给arr末尾添加元素,首先我们可以想到用push方法添加。
- 用splice()方法添加。splice()这个方法可增可删数组元素。
- 用concat()在末尾或者开头添加值或者数组。
- 扩展运算符提供了数组合并的新写法。[...arr, item]。在添加元素的时候跟concat的用法一样。
function append(arr, item) {
//法一
//复制arr数组给a
var a =arr.slice(0);
a.splice(arr.length,0,item);
console.log(a)
//法二
// var a =arr.slice(0);
// a.splice(arr.length,0,item);
// return a;
//法三
//return arr.concat(item);
//法四
//return [...arr, item];
}
append([1,2,3,4],10);
?1.2在数组中对一个索引添加对应的数据
在数组 arr 的 index 处添加元素 item。不要直接修改数组 arr,结果返回新的数组
输入:[1, 2, 3, 4], 'z', 2
输出:[1, 2, 'z', 3, 4]
方法:
- slice()+splice()
- 扩展运算符+splice()
function insert(arr, item, index) {
//使用slice()+splice()
var a=arr.slice(0);
a.splice(index,0,item);
return a;
// 使用扩展运算符+splice()
// let newArr = [...arr];
// newArr.splice(index, 0, item);
// return newArr;
}
}
2.删除数组元素
2.1删除指定元素
移除数组 arr 中的所有值与 item 相等的元素。不要直接修改数组 arr,结果返回新的数组
输入:[1, 2, 3, 4, 2], 2
输出:[1, 3, 4]
?方法:
1.题目的意思是移除数组中的相等元素,那我们可以逆向思维,那么意味着新数组中的元素不等于item,因此新建一个数组,然后进行循环判断。将不等于item的元素放进去,返回即可。给新数组放入元素用push()方法。
2.filterfilter()?方法创建一个包含通过测试的数组元素的新数组。
法一
function remove(arr, item) {
var a=[];
for(var i=0;i<arr.length;i++){
if(arr[i]!=item)
{a.push(a[i])}
}
return a;
}
法二?
function remove(arr, item) {
return arr.filter( function a()=>{a!=item} )
}
2.2删除数组最后一个元素
方法
- slice(0,-1)
- filter(),如果数组的索引不是最后一个,那就返回
- pop()
//利用slice
function truncate(arr) {
return arr.slice(0,-1);
}
//利用filter
function truncate(arr) {
return arr.filter(function(v,i,ar) {
//如果数组的索引不是最后一个,那就输出
return i!==ar.length-1;
});
}
//利用pop()
function truncate(arr) {
var a=arr.slice(0);
a.pop();
return a;
}
2.3删除数组第一个数据
//利用slice(1),表示裁切掉第一个数据,保留剩下的数据作为新数组
function curtail(arr) {
return arr.slice(1);
}
//利用filter,如果索引不等于0,那就输出到新数组
function curtail(arr) {
return arr.filter(function(v,i) {
return i!==0;
});
}
//用shift()
function curtail(arr) {
//复制数组arr
var a = arr.slice(0);
a.shift();
return a;
}
//用splice
function curtail(arr) {
var a =arr.slice(0);
a.splice(0,1)
return a
}
//用扩展运算符
function curtail(arr) {
let newArray = [...arr];
newArray.shift();
return newArray;
}
|