[
{ "id":"1", "name":"name1"},
{ "id":"2", "name":"name2"},
{ "id":"3", "name":"name3"}
]
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”字符串时,它不会给出任何错误,它只是不起作用
你可以帮我找到正确的方法吗?谢谢答案 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'));