2017-10-03 8 views
-1

배열에서 항목을 제거하고 전체 배열 목록을 반환하려고하지만 어떤 이유로 .filter() 또는 _.filter()가 내 주 객체 "itemsList"를 삭제하고 배열의 값만 남겨 둡니다.배열 목록 개체를 반환 할 수 없습니다. underscore.js 또는 .filter()를 사용하여 반환 된 값만

{"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 = []; 

var newOut = itemsList.push(out); 


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

나는 나의 배열 같은 방법으로 retun와 같은 id 변수를 제외 목록에서 다른 항목을 계속해야합니다!

답변

2

나는 문제가 귀하의 출력을 원하는대로 포맷하지 않는다고 생각합니다.

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, "이름": "데모 ","description ":"Demo Description "}]}

+0

닫기. itemList를 원한다면 : out' 그렇지 않으면 중첩 된 배열을 얻는다. – Andy

+0

아, 그래, 고마워. 내가 당신의 코드처럼 보이는 – Scriptable

+0

을 우습게 만들 것입니다. 나는 그 행을 단순히 사용할 수있는 .push()를 사용하여 배열을 푸시하려했다. var itemsList = { "itemList": out}; – Skwashy

1

필터 함수는 새로운 배열을 반환합니다.

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

arr.itemsList=out 

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

underscore.js와 함께 작동합니까 응답을 012v로 설정했습니다. – Skwashy

+0

@Skwashy : 필터 기능이 올바르게 작동하고 있습니다. 필터 함수의 출력을 'arr.itemsList'에 할당해야합니다. – swap0129