JavaScript数组的增删方法

这篇博客介绍了如何在JavaScript中对数组进行操作,包括在数组末尾添加元素、在特定索引插入元素、删除指定元素以及删除数组首尾元素的各种方法,如使用splice、concat、扩展运算符等。并提供了相应的示例代码和实现函数。
摘要由CSDN通过智能技术生成

1.给数组添加元素

1.1 在数组末尾添加一个固定元素

在数组 arr 末尾添加元素 item。不要直接修改数组 arr,结果返回新的数组

输入:[1, 2, 3, 4], 10

输出:[1, 2, 3, 4, 10]

方法:

  1. 给arr末尾添加元素,首先我们可以想到用push方法添加。
  2. 用splice()方法添加。splice()这个方法可增可删数组元素。
  3. 用concat()在末尾或者开头添加值或者数组。
  4. 扩展运算符提供了数组合并的新写法。[...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]

方法:

  1. slice()+splice()
  2. 扩展运算符+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删除数组最后一个元素

方法

  1. slice(0,-1)
  2. filter(),如果数组的索引不是最后一个,那就返回
  3. 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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值