2016-11-26 62 views
0

值从JavaScript数组数据我有一个JavaScript数组 myArray = [{'id':'73','data':'SampleData 1'},{'id':'45','data':'SampleData 2'}];获取使用的关键

通过提供这种阵列的id作为45我怎样才能得到SampleData 2data

请帮忙。提前致谢。

+0

使用for循环和if语句的?你知道如何遍历数组吗? – qxz

+0

你有什么尝试?有很多方法可以做到这一点,像[underscore](http://underscorejs.org/)这样的库提供的方法可以完全满足你的要求。 – chazsolo

回答

0

这应该为你做。测试片段,你会看到警报运行。有更好的方法来做到这一点,但这种方法很简单,不需要任何东西,但JavaScript。

data = [{"id": 45, "thing": "asdf"}, {"id": 32, "thing": "jkl"}]; 
 

 
for (i=0; i<data.length; i++) { 
 
    if (data[i].id == 45) { 
 
    alert("Found the object with id of 45, alerting 'thing' property"); 
 
    alert(data[i].thing); 
 
    } 
 
}

0

通过筛选你想要的ID数组,你会得到与信息进行过滤对象的数组。

const [myItem] = myArray.filter(item => item.id === 45); 

在上述代码中,myItem{'id':'45','data':'SampleData 2'}。你可以更进一步,做:

const [{ data: myItemsData }] = myArray.filter(item => item.id === 45); 

在这种情况下,myItemsData'SampleData 2'

由于@torazaburo指出的那样,你可以使用:

const { data: myItemsData } = myArray.find(item => item.id === 45); 
+0

你为什么用'filter'而不是'find'? – 2016-11-26 03:09:50

+0

@torazaburo旧习惯。 [Array#filter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter)比[Array#find](https:// developer .mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter) – David

+1

任何支持解构赋值的环境都会有'find'。 – 2016-11-26 03:11:52