如何获取基于另一个属性的 JSON 属性
How to get JSON property based on another property
假设我有一个以下JSON文件:
[
{
"id" : "1",
"name" : "Super shirt",
"snippet": "Item description here",
"price" : "some price here",
"category" : "shirt",
"pic" : "picture1"
},
{
"id" : "2",
"name" : "Super duper",
"snippet": "Item description here",
"price" : "some price here",
"category" : "shirt",
"pic" : "picture2"
}
]
等等。如何根据每个对象的"id"属性获取"pic"属性的值?那么如果我有该对象的 id,如何获取每个对象的图片。
你正在寻找Array.find
picture = data.find(x => x.id == SOME_ID).pic
对于较旧的浏览器,链接页面上有一个填充项。
用于 each 迭代数组
var obj = [
{
"id" : "1",
"name" : "Super shirt",
"snippet": "Item description here",
"price" : "some price here",
"category" : "shirt",
"pic" : "picture1"
},
{
"id" : "2",
"name" : "Super duper",
"snippet": "Item description here",
"price" : "some price here",
"category" : "shirt",
"pic" : "picture2"
}
];
var pic = "";
obj.forEach( function(value){
if (value.id == "1" )
{
pic = value.pic;
}
} );
alert(pic);
假设您的数据结构如下所示:
var arr= [
{
"id" : "1",
"name" : "Super shirt",
"snippet": "Item description here",
"price" : "some price here",
"category" : "shirt",
"pic" : "picture1"
},
{
"id" : "2",
"name" : "Super duper",
"snippet": "Item description here",
"price" : "some price here",
"category" : "shirt",
"pic" : "picture2"
}
];
然后,您可以通过搜索数组来找到对象中的图片,如下所示:
function findPicById(data, idToLookFor) {
for (var i = 0; i < data.length; i++) {
if (data[i].id == idToLookFor) {
return(data[i].pic);
}
}
}
例如:
var item = findPicByIdId(data, 1); //return picture1
var data= [{"id" : "1","name" : "Super shirt","snippet": "Item description here","price" : "some price here","category" : "shirt","pic" : "picture1"},
{"id" : "2","name" : "Super duper","snippet": "Item description here","price" : "some price here","category" : "shirt","pic" : "picture2"}
];
var selected_pic = null;
$.each(data,function(key,value){
if(value.id == "1"){selected_pic = value.pic;}
});
console.log(selected_pic);
尝试上面的代码:
相关文章:
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 如何通过HTML+CSS中的另一个元素Selector更改元素的属性值
- AngularJS:如何用同一对象的另一个属性访问一个属性
- 如果另一个属性相同,请删除该属性
- 使用数据属性将HTML数据复制到另一个元素
- 无法将react组件作为属性传递给另一个组件
- 如何使用元素's属性值,以针对jQuery中具有相同属性值的另一个元素
- 从类(动态)中获取css属性并将其添加到另一个类中
- 如何在 XML 中搜索特定属性以检索另一个属性
- 检查所有元素的属性并修改另一个元素
- 通过另一个对象上的字符串值为 javascript 对象属性赋值
- 使用 JQuery 从另一个元素的 id 为图像分配属性
- 如果指令包含在另一个指令中,我如何在隔离范围内添加双向数据绑定属性
- 如何使用jQuery访问属于函数内部另一个函数的对象的属性
- 如何使用jQuery只删除一个属性值而不删除另一个
- 将值和属性从一个对象合并到另一个对象
- 替换对象's属性,其中包含JavaScript中另一个对象的属性,不包含库
- 从另一个Javascript脚本(Canvas3D)更新QML属性
- 无法使用typescript访问angular中另一个控制器中声明的$rootscope属性
- 使用jquery将远程html-alt属性加载到另一个使用for循环和数组的页面中