如何从数组对象中删除键值对

4
我想从所有对象中删除属性'b',应该如何操作? 如何删除?
 let result=[
    {
       'id':'1',
       'b':'asd'
    },
    {
       'id':'2',
       'b':'asd'
    },
    ...
    ,
    { 
       'id':'2000',
       'b':'asd'
    },
 ]  
  // delete object.b; its only for object and want to remove from whole 
   //  array 2000 records  

使用foreach循环从对象数组中删除键值对是否是正确的方法?

result = result.map( x => { delete x.b; return x } ) - Tibrogargan
@Tibrogargan,不, map 会创建一个新数组。您需要更改原始数组。 - Mihai Alexandru-Ionut
是的,使用foreach循环是正确的方式。 - Mihai Alexandru-Ionut
@MihaiAlexandru-Ionut 为什么?旧的将被标记为删除,而“result”变量将持有一个具有相同引用的新数组。 - Tibrogargan
3个回答

3
如果这是你唯一拥有的结构,你可以这样做:
result = result.map(e => ({ id: e.id }))

如果结构更加复杂,您可能想使用delete

result.forEach((e) => {
    delete e.b;
});

你假设result中的成员唯一的键是idb,这并不是要求的。 - Tibrogargan
请为以下内容提供通用的翻译(原句未指定编程语言),返回仅翻译后的文本: - FrontTheMachine

1
你可以使用forEach

 let result=[
    {
       'id':'1',
       'b':'asd'
    },
    {
       'id':'2',
       'b':'asd'
    },
    { 
       'id':'2000',
       'b':'asd'
    },
 ];
result.forEach(function(item){ delete item.b });
console.log(result);


1
你为什么需要在这里使用jQuery? - Mihai Alexandru-Ionut
谢谢提醒,这是个习惯 :) - lucky

0

尝试以下代码:

let result=[
    {
       'id':'1',
       'b':'asd'
    },
    {
       'id':'2',
       'b':'asd'
    },
    { 
       'id':'2000',
       'b':'asd'
    }
 ];
 
 for(let i in result){
    let obj = result[i];
    delete obj['b'];
 }
 console.log(result);

希望能有所帮助 :)


是的,它对我有帮助。但这样做是否正确呢?因为结果包含4000条记录。所以使用它需要循环,而且要运行4000次。 - Aniket kale

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接