json对象的过滤值
问题描述:
我有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”串它不给任何错误,它只是不工作
你能帮助我找到正确的方法是什么?谢谢
答
我创建了一个拨弄你的代码,并将其与int或字符串的工作原理:https://jsfiddle.net/nyvbb4nd/1/
你在你的代码申报valueItem
?
var valueItem='1'; //1
var result = idAndNamesArray.filter(item => checkFilter(item.get('id'),valueItem));
console.log(result);
答
如果你只为这个任务中使用不可变的,我会避免它,只需使用ES6语法:
我已经更新checkFilter
返回一个函数,以便它可以在每个过滤工作元件。所有你需要做的是通过在valueItem
const checkFilter = (valueItem) => (el) => el.id <= valueItem;
let result = data.filter(checkFilter('2'));
你是正确的代码工作。我只是发现我失去了一些其他的东西感谢您的回应 – user2960407
有没有办法使用checkFilter函数为id和名称item => checkFilter(item.get('id'),valueItem)仅用于id如果我想要为数组的所有值使用相同的函数? – user2960407