我想使用underscore.js
搜索对象内的StringJSON数据
{ data:
[
{'id': 1, 'name': 'New Samsung Galaxy 3' },
{'id': 2, 'name': 'Samsung Grand'},
{'id': 3, 'name': 'Galaxy 3 dress new Arrival'},
{'id': 4, 'name': 'Samsung Galaxy 3 black ' },
{'id': 5, 'name': 'Samsung refrigerators'}
];
}
假设我有一个关键字 Samsung Galaxy 3
。我希望它只返回匹配的字符串。
喜欢此输出:
{ data:
[
{'id': 1, 'name': 'New Samsung Galaxy 3' },
{'id': 4, 'name': 'Samsung Galaxy 3 black ' },
];
}
答案 0 :(得分:2)
使用_filter。
var data =
[
{'id': 1, 'name': 'New Samsung Galaxy 3' },
{'id': 2, 'name': 'Samsung Grand'},
{'id': 3, 'name': 'Galaxy 3 dress new Arrival'},
{'id': 4, 'name': 'Samsung Galaxy 3 black ' },
{'id': 5, 'name': 'Samsung refrigerators'}
];
_.filter(data, function(item) {
return item.name.indexOf("Samsung Galaxy 3") != -1;
});
答案 1 :(得分:1)
_filter:
返回通过真值测试的所有元素。与select
类似。
_where:
filter
的常见用例的便捷版本。仅选择对象
包含特定的key:value
对。
var data =
[
{'id': 1, 'name': 'New Samsung Galaxy 3' },
{'id': 2, 'name': 'Samsung Grand'},
{'id': 3, 'name': 'Galaxy 3 dress new Arrival'},
{'id': 4, 'name': 'Samsung Galaxy 3 black ' },
{'id': 5, 'name': 'Samsung refrigerators'}
];
_.where(data, function(item) {
return item.name.indexOf("Samsung Galaxy 3") != -1;
});
console.log(data);