从json对象

时间:2016-04-03 20:06:27

标签: javascript json filter immutable.js

我有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或名称

过滤它 当valueItem = 1时

;整数我得到错误:“预期的数组或值的可迭代对象”

当valueItem =“1”字符串时,它不会给出任何错误,它只是不起作用

你可以帮我找到正确的方法吗?谢谢

2 个答案:

答案 0 :(得分:1)

我用你的代码创建了一个小提琴,它适用于int或string:https://jsfiddle.net/nyvbb4nd/1/

您是否在代码中声明了valueItem

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

答案 1 :(得分:0)

如果您仅为此任务使用了Immutable,我会避免使用它,只使用ES6语法:

我已更新checkFilter以返回一个功能,以便它可以处理每个已过滤的元素。您需要做的就是传递valueItem

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

DEMO