【发布时间】:2016-03-11 16:04:21
【问题描述】:
根据这些答案,我应该能够通过多个值搜索对象。
How to find a value in a multidimensional object/array in Javascript?
Javascript: How to filter object array based on attributes?
Search multi-dimensional array JavaScript
不幸的是filter() 没有返回任何东西。 jQuery 的 grep() 也是如此。
Google 5 页,仍然找不到解决方案。
请帮忙。谢谢
https://jsfiddle.net/4z90rvk3/
var itemPrices = {
'1': { 'catid': '1', 'typeid': '1', 'price': '1000' },
'2': { 'catid': '1', 'typeid': '2', 'price': '1000' },
'3': { 'catid': '1', 'typeid': '3', 'price': '1100' },
'4': { 'catid': '2', 'typeid': '1', 'price': '1000' },
'5': { 'catid': '2', 'typeid': '2', 'price': '1000' },
'6': { 'catid': '2', 'typeid': '3', 'price': '1100' },
'7': { 'catid': '3', 'typeid': '1', 'price': '1200' },
'8': { 'catid': '3', 'typeid': '2', 'price': '1200' },
'9': { 'catid': '3', 'typeid': '3', 'price': '1300' },
'10': { 'catid': '4', 'typeid': '1', 'price': '1200' },
'11': { 'catid': '4', 'typeid': '2', 'price': '1200' },
'12': { 'catid': '4', 'typeid': '3', 'price': '1300' },
};
var price = itemPrices.filter(function(item) { return item.typeid == 1 && item.catid == 2; });
$('body').append(price);
【问题讨论】:
-
你确定这是一个数组吗?它看起来像一个对象......
-
filter是Array的函数。itemPrices是一个对象。 -
在这些答案中也有对象。
-
stackoverflow.com/questions/5072136/… 的可能重复项您可以尝试接受答案中的方法。
-
您没有使用对象数组......只是一个带有对象的对象。检查规范 - developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… --- 它需要一个数组
标签: javascript