繁体   English   中英

无法仅返回使用underscore.js或.filter()返回的值的数组列表对象

[英]Cannot return an array list object only values returned using underscore.js or .filter()

我试图从数组中删除一个项目并返回整个数组列表,但是由于某些原因,.filter()或_.filter()正在清除我的主对象“ itemsList”,仅保留数组中的值。

var arr = {"itemsList":[{"id":11000,"name":"Demo","description":"Demo Description"},{"id":"222010","name":"test item","description":"test item desc\n"}]};

var resourceId = "222010";

var out = _.filter(arr.itemsList, function(item){
   return item.id !== resourceId;
});

var itemsList = [];

var newOut = itemsList.push(out);


document.getElementById('result').value = JSON.stringify(out);

我需要以相同的方式重新调整数组,并保留列表中除id变量之外的其他项,例如:

{"itemsList":[{"id":11000,"name":"Demo","description":"Demo Description"}]}

随意使用我的小提琴https://jsfiddle.net/RicardoAlves/wbnv3040/

谢谢!

我认为问题在于您未按要求格式化输出。

var arr = {
  "itemsList": [{
    "id": 11000,
    "name": "Demo",
    "description": "Demo Description"
  }, {
    "id": "222010",
    "name": "test item",
    "description": "test item desc\n"
  }]
};

var resourceId = "222010";

var out = _.filter(arr.itemsList, function(item) {
  return item.id !== resourceId;
});

var itemsList = { "itemList": out };

console.log(JSON.stringify(itemsList));

您正在过滤掉不需要的项目,但仅输出该项目

输出:

{“ itemList”:[{“ id”:11000,“ name”:“ Demo”,“ description”:“ Demo Description”}]}

过滤器函数返回一个新数组。

var out = _.filter(arr.itemsList, function(item) {
       return item.id !== resourceId;
     });

arr.itemsList=out

document.getElementById('result').value = JSON.stringify(arr);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM