如何从JavaScript对象获取项目?

col*_*nde 4 javascript jquery json

如何从JavaScript对象获取项目:

var items = [
  {
    ITEM:1,
    AMOUNT:10
  },
  {
    ITEM:2,
    AMOUNT:20
  }
];
Run Code Online (Sandbox Code Playgroud)

我希望能够做到这样的事情:

$(items).filter(ITEM == 1).AMOUNT;
Run Code Online (Sandbox Code Playgroud)

......会回来的10.

Dan*_*llo 6

您正在创建一个对象数组.如果按顺序插入项目,您可以使用:

items[0].AMOUNT;   // return the amount of the first item in the array
Run Code Online (Sandbox Code Playgroud)

但是,(使用纯JavaScript)您可能更喜欢利用JavaScript对象的哈希表特性,并使用以下内容:

var items = {
    item1: {
       amount: 10
    },
    item2: {
       amount: 20
    }
};
Run Code Online (Sandbox Code Playgroud)

然后你就可以使用下标表示法:

items['item1'].amount;
Run Code Online (Sandbox Code Playgroud)

...或点符号:

items.item1.amount;
Run Code Online (Sandbox Code Playgroud)

@ casablanca的解决方案是一个有效的替代方案,但请注意该filter()方法在O(n)中运行, 因为提供的选择器是针对数组的每个元素进行测试的.另一方面,哈希表中的项目可以在O(1)中找到(恒定时间).