JavaScript之从一个数组对象中删除某一个key1和value1,并且取其他的key 和value组成一个新的数组对象

本文主要记录一下关于数组与对象互相转换的问题,写的如有不妥之处,还请大家多多指教!

有一个如:[{key1 : val1 , key2 : val2 , key3 : val3}, {key1 : val1 , key2 : val2 , key3 : val3} , ... , {key1 : val1 , key2 : val2 , key3 : val3}]  这种类型的数组对象,现在需要把所有的key1 : val1 都去掉。根据我了解到的,做了如下一个实例:

把所有的id:'i'都去掉,js代码如下

    //去除所有的id的key:value,保留其他的key:value
    var newObj = {};
    var arrList = [
    {id:1, name:'惊鲵',sex:'1'},
    {id:2, name:'掩日',sex:'2'},
    {id:3, name:'黑白玄翦',sex:'3'}
  ];
    var newArr = [];
    arrList.forEach(function(item,i){
        for ( var key in item) {
            if(key != 'id'){
                newObj[key] = item[key];
            }
        }
        newArr.push(newObj);
        newObj = {};//这步至关重要,每循环一次,都要清空一次,否则拿到的数据总是最后一条
    });  
    console.log(newArr);

逻辑步骤:

  1. 首先,对该数组对象arrList进行遍历,然后用for..in 的方法可以得到需要去掉的key值,然后根据if条件进行判断;
  2. 其次,声明一个新的对象newObj,用新的对象来接收其他的key和value(即将其他的key和value重新组成一个新的对象);
  3. 然后,再声明一个新的数组newArr,将数组对象放在该容器中;
  4. 最后至关重要且又容易被忽略的一点:在for..in 的外边需要清空一次新声明的对象newObj,否则最后打印出来的结果永远只会是最后一条数据。

最终实现的效果如下:

[{name: "惊鲵", sex: "1"},{name: "掩日", sex: "2"},{name: "黑白玄翦", sex: "3"}]

测试结果图如下,id成功被去掉: 

PS如果没有清空newObj,会出现什么样的效果,截图给大家展示一下:

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值