【问题标题】:How to remove some elements in an object array using Lodash如何使用 Lodash 删除对象数组中的某些元素
【发布时间】:2018-06-15 10:29:20
【问题描述】:

我只是询问如何使用 lodash 删除对象数组中的一些元素。

var fruits = [
  { id: 1, name: 'Apple', price: 55, qty: 3, status: 'ripe' },
  { id: 2, name: 'Banana', price: 55, qty: 4, status: 'ripe' },
  { id: 3, name: 'Pineaple', price: 55, qty: 2, status: 'ripe' }
];

如何删除所有对象数组中的数量和状态,使其看起来像这样

[
  { id: 1, name: 'Apple', price: 55 },
  { id: 2, name: 'Banana', price: 55 },
  { id: 3, name: 'Pineaple', price: 55 }
]

【问题讨论】:

    标签: javascript object lodash


    【解决方案1】:

    无需任何库,您可以使用map 并解构对象。

    var fruits = [{"id":1,"name":"Apple","price":55,"qty":3,"status":"ripe"},{"id":2,"name":"Banana","price":55,"qty":4,"status":"ripe"},{"id":3,"name":"Pineaple","price":55,"qty":2,"status":"ripe"}]
    var result = fruits.map(({qty,status,...r}) => r);
    
    console.log(result);

    【讨论】:

      【解决方案2】:

      您也可以在不使用库的情况下做到这一点。

      使用Array.map

      var fruits = [{ id: 1, name: 'Apple', price: 55, qty: 3, status: 'ripe' },{ id: 2, name: 'Banana', price: 55, qty: 4, status: 'ripe' },{ id: 3, name: 'Pineaple', price: 55, qty: 2, status: 'ripe' }];
      let result = fruits.map(({status,qty,...rest}) => rest);
      console.log(result);

      【讨论】:

        【解决方案3】:

        您可以使用 forEach 遍历对象并删除 使用普通旧 delete 运算符的不需要的字段。

        此方法清除您当前的对象,无需定义新对象。

        fruits.forEach((val) => {delete val.qty; delete val.status})
        

        【讨论】:

        • 虽然此代码 sn-p 可能是解决方案,但 including an explanation 确实有助于提高您的帖子质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。
        • @RoshanaPitigala,我已经添加了解释。我之前没有这样做,因为我使用的运算符是基本且不言自明的。
        • @NarendraJadhav ,我已经添加了解释。我之前没有这样做,因为我使用的运算符是基本且不言自明的。
        【解决方案4】:

        确实,您不需要使用库来有效地删除对象的属性,但如果您想使用 lodash,这里有一个示例说明如何你可以使用.pick 方法来做到这一点:

        let pickedFruits = [];
        for (let i in fruits) {
          pickedFruits.push(_.pick(fruits[i], ["id", "name", "price"]));
        }
        

        其中pickedFruits 将是新的对象数组,每个对象都具有idnameprice 属性。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-12-17
          • 1970-01-01
          • 1970-01-01
          • 2020-02-13
          • 2018-05-27
          • 1970-01-01
          相关资源
          最近更新 更多