簡體   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