如何使用Javascript从对象中查找项?
我有我的数据对象:如何使用Javascript从对象中查找项?,javascript,arrays,Javascript,Arrays,我有我的数据对象: var elements = { 'element' : { 'name' : 'test', 'price' : '55' }, 'element' : { 'name' : 'letev', 'price': '223' } }; 现在,我不知道如何通过名称来查找每个元素。
var elements = {
'element' : {
'name' : 'test',
'price' : '55'
},
'element' : {
'name' : 'letev',
'price': '223'
}
};
现在,我不知道如何通过名称来查找每个元素。
我需要按名称查找元素测试,然后访问它的其他参数(价格,…)尝试:
var elements = [
{
'name' : 'test',
'price' : '55'
},
{
'name' : 'letev',
'price': '223'
}
];
var search = 'letev';
for (var i = 0; i < elements.length; i++) {
if (elements[i].name == search) {
alert('found!');
break;
}
}
假设您的对象是数组而不是您使用的语法:
var elements = [
{
'name' : 'test',
'price' : '55'
},{
'name' : 'letev',
'price': '223'
}
];
可以按如下方式导出元素:
searchName = 'test';
elements.filter(function(element){
return element.name == searchName;
});
array result = filterByName(elements, 'test');
这将只返回名为'test'
的元素
或者作为一种功能:
function filterByName(array, namr){
array.filter(function(element){
return element.name == name;
});
}
这样称呼:
searchName = 'test';
elements.filter(function(element){
return element.name == searchName;
});
array result = filterByName(elements, 'test');
如果您需要支持IE8或更低版本,可以使用for
数组.prototype.filter
如果元素
对象是数组,即
var elements = [{
'element' : {
'name' : 'test',
'price' : '55'
},
'element' : {
'name' : 'letev',
'price': '223'
}
}];
var price;
for (var i=0; i <elements.length; i++) {
if (elements[i].name === 'test') {
price = elements[i].price;
break;
}
}
var元素=[{
“元素”:{
“名称”:“测试”,
‘价格’:‘55’
},
“元素”:{
'name':'letev',
“价格”:“223”
}
}];
var价格;
对于(var i=0;i您必须将元素更改为数组:
var elements = [
{
'name' : 'test',
'price' : '55'
},
{
'name' : 'letev',
'price': '223'
}
];
function findElementByName(name, elementsForSearch) {
if (name) {
elementsForSearch.filter(function(elem){
return elem.name === 'name';
});
return elementsForSearch[0];
}
return {};
}
alert(findElementByName('test', elements).name)
试试这个
var List= (JObject)JsonConvert.DeserializeObject(jsonstring);
var result= List["element"].Children().Select(node => node["name"]== "Test").ToList();
这个对象是不可能的。键名必须是唯一的。使用Array.filter
。它更易于维护。是的,谢谢,它是ES 5.1,但检查了它的支持(IE9+和现代)。我想我可以使用它:)使用Array.filter
,而不是手动迭代结果。