如何使用Lodash删除对象数组中的一些元素

时间:2018-06-15 10:29:20

标签: javascript object lodash

我将问一下如何使用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 }
]

4 个答案:

答案 0 :(得分: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);

答案 1 :(得分:1)

您也可以不使用图书馆。

使用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);

答案 2 :(得分:0)

  

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

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

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

答案 3 :(得分:0)

您确实不需要使用库来有效删除对象的属性,但如果您想使用 lodash ,这是一个示例如何使用.pick方法完成此操作:

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

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