使用id编号从JavaScript array.object获取值
Get value from a JavaScript array.object using id number
基于下面的var data
。如果我只有数字2
,我如何获得full_name
的值?编号2对应于id: 2
,全名为Eric
var data = [{
id: 0,
full_name: 'None',
gravatar_url: 'http://gravatar.com/avatar/31b64e4876d603ce78e04102c67d6144?s=80'
}, {
id: 1,
full_name: 'John',
gravatar_url: 'http://gravatar.com/avatar/31b64e4876d603ce78e04102c67d6144?s=80'
}, {
id: 2,
full_name: 'Eric',
gravatar_url: 'http://gravatar.com/avatar/31b64e4876d603ce78e04102c67d6144?s=80'
}, {
id: 3,
full_name: 'Larry',
gravatar_url: 'http://gravatar.com/avatar/31b64e4876d603ce78e04102c67d6144?s=80'
}, {
id: 4,
full_name: 'Rick',
gravatar_url: 'http://gravatar.com/avatar/31b64e4876d603ce78e04102c67d6144?s=80'
}, {
id: 5,
full_name: 'John',
gravatar_url: 'http://gravatar.com/avatar/31b64e4876d603ce78e04102c67d6144?s=80'
}, {
id: 6,
full_name: 'Eric',
gravatar_url: 'http://gravatar.com/avatar/31b64e4876d603ce78e04102c67d6144?s=80'
}, {
id: 7,
full_name: 'Larry',
gravatar_url: 'http://gravatar.com/avatar/31b64e4876d603ce78e04102c67d6144?s=80'
}, {
id: 8,
full_name: 'Rick',
gravatar_url: 'http://gravatar.com/avatar/31b64e4876d603ce78e04102c67d6144?s=80'
}, {
id: 9,
full_name: 'John',
gravatar_url: 'http://gravatar.com/avatar/31b64e4876d603ce78e04102c67d6144?s=80'
}, {
id: 10,
full_name: 'Eric',
gravatar_url: 'http://gravatar.com/avatar/31b64e4876d603ce78e04102c67d6144?s=80'
}, {
id: 11,
full_name: 'Larry',
gravatar_url: 'http://gravatar.com/avatar/31b64e4876d603ce78e04102c67d6144?s=80'
}, {
id: 12,
full_name: 'Rick',
gravatar_url: 'http://gravatar.com/avatar/31b64e4876d603ce78e04102c67d6144?s=80'
}];
(data.filter(function(x) { return x.id == 2 })[0] || {}).full_name;
// => "Eric"
CCD_ 6将仅返回符合给定标准的元素;在这种情况下id
是2
。由于我们只关心一个元素,所以我们只取第一个找到的元素;但如果不存在,.full_name
会给出一个关于full_name
没有在undefined
上定义的错误,所以我们放入了一个空对象,以防使用|| {}
搜索失败。
Amadan的答案可能比我的更好/更防失败,但如果你知道你的对象数组总是包含从Id 0到Id无穷的对象,你也可以用得到它
var wanted = data[number].fullName
ES6提供Array#find
,用于查找数组中满足某些条件的第一个元素:
var wanted = data.find(elt => elt.id === 2);
如果你没有这个,有各种各样的polyfill,包括上面引用的页面上的一个。
function myQuery(array, id){
for(i in array){
if(array[i].id === id){
console.log(data[i].full_name);
return data[i].full_name;
}
}
}
myQuery(data, 2)
如果您保持ID与数组中的位置相等,您可以这样做。
function myQuery(id){
return array[id].full_name
}
相关文章:
- 如何从〔object HTMLUListElement〕将UL从cookie获取到Array
- Object.defineProperty获取集返回错误的值
- jQuery令牌输入轨道获取错误Uncaught TypeError:Object[Object Object]没有方法
- jQuery从变量中获取NaN和[object object]
- 获取 [Object HTMLInputElement] 错误
- Jquery获取Div的嵌套输入,放置在Object中
- 获取 [Object Object] 代替 Javascript visualforce 页面中的字符串
- 使用 $().trigger() 并获取 TypeError: Object [object Object] 没有方法“
- 如何在javascript中声明成员函数?获取“TypeError: Object.function is not a
- 使用 Object.keys() 获取字典的键
- Object.keys,如何在mongodb中获取键列表
- Javascript 在 Object 中获取对象
- $(this).parent().attr('id') 获取 '[object window]&
- 在尝试获取request.body Nodejs中的所有字段时获取异常“Object.keys在尝试访问对象时调用非对象
- 如何在javascript/jquery中获取Object[value]的值
- 如何通过jquery获取Object Value
- 如何从"[object object]"获取值
- 使用id编号从JavaScript array.object获取值
- 如何使用JavaScript从Parse.com中的类中的Object获取信息
- 从prototype.object获取类上下文