使用键数组切片JSON对象数组

时间:2015-12-24 10:25:04

标签: javascript arrays slice

我有以下代码段。我想使用具有键的数组删除键值对。

var fruits = [{ fruitId: B1, fruitName:"Banana", size : Medium}, { fruitId: B2, fruitName: "Orange", size : Big}, { fruitId: B3, fruitName: "Lemon", size: small}];
var fruitIds = [B1, B2];

现在我想在使用fruitIds数组切片后切割fruits数组。我希望切片后的结果为

var fruits = [{ fruitName: "Lemon", size: small}];

我需要纯粹的Javascript。

1 个答案:

答案 0 :(得分:6)

您可以使用Array.prototype.filter

var fruits = [
  {
    fruitName : "Banana",
    size : 'Medium'
  }, 
  {
    fruitName : "Orange",
    size : 'Big'
  }, 
  {
    fruitName : "Lemon",
    size : 'small'
  }
];
var fruitNames = ['Banana', 'Orange'];

var result = fruits.filter(function (x) {
  return fruitNames.indexOf(x.fruitName) === -1;
});

document.body.innerHTML = "<pre>" + JSON.stringify(result, null, 4) + "</pre>";

它仅输出Lemon,因为fruitNames数组中存在其他两个项目。