来自 json 个对象的过滤值

filter value from json object

我有 json 个对象 idAndNames.json;

[

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

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

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

]

我想按 id 和 name 过滤它

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时;整数我得到错误:"Expected Array or iterable object of values"

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

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

我用你的代码创建了一个 fiddle 并且它适用于 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);

如果你只使用 Immutable 来完成这个任务,我会避免使用它而只使用 ES6 语法:

我已将 checkFilter 更新为 return 一个函数,以便它可以处理每个已过滤的元素。您需要做的就是传入 valueItem

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

DEMO