2016-04-03 285 views
-1

我有json對象idAndNames.json;

[ 

    { "id":"1", "name":"name1"}, 

    { "id":"2", "name":"name2"}, 

    { "id":"3", "name":"name3"} 

] 

我想通過ID和名稱

function checkFilter(id,valueItem) { 

return id <= valueItem; 

} 
//i changed json to array with immutable.js -> fromJS(idAndNames); 

idAndNamesArray.filter(item => checkFilter(item.get('id'),valueItem)); 

對其進行過濾,但我不能按id或姓名過濾它json對象的過濾值

當valueItem = 1;整數i得到錯誤:「預期的數組或值的迭代對象」

時valueItem =「1」串它不給任何錯誤,它只是不工作

你能幫助我找到正確的方法是什麼?謝謝

回答

1

我創建了一個撥弄你的代碼,並將其與int或字符串的工作原理:https://jsfiddle.net/nyvbb4nd/1/

你在你的代碼申報valueItem

var valueItem='1'; //1 
var result = idAndNamesArray.filter(item => checkFilter(item.get('id'),valueItem)); 
console.log(result); 
+0

你是正確的代碼工作。我只是發現我失去了一些其他的東西感謝您的迴應 – user2960407

+0

有沒有辦法使用checkFilter函數爲id和名稱item => checkFilter(item.get('id'),valueItem)僅用於id如果我想要爲數組的所有值使用相同的函數? – user2960407

0

如果你只爲這個任務中使用不可變的,我會避免它,只需使用ES6語法:

我已經更新checkFilter返回一個函數,以便它可以在每個過濾工作元件。所有你需要做的是通過在valueItem

const checkFilter = (valueItem) => (el) => el.id <= valueItem; 
let result = data.filter(checkFilter('2')); 

DEMO