我从php文件接收JSON输出, 有很多像这样的对象:
[
{ "home_content" : "Nam feugiat sem diam, ut fermentum orci hendrerit sit amet.",
"home_id" : 2,
"home_img" : "tech.png",
"home_title" : "Latest Technologies Development"
},
{ "home_content" : "לורם לורם",
"home_id" : 239,
"home_img" : "http://placehold.it/400",
"home_title" : "שוק פירות וירקות"
},
{ "home_content" : "New Item Content",
"home_id" : 259,
"home_img" : "http://www.placehold.it/100",
"home_title" : "New Home Item"
}
]
在我的应用程序中,我想删除某个对象,
有没有办法通过home_id
收到它的位置?
或任何能让我区分某个对象与该列表的东西
答案 0 :(得分:3)
你所拥有的是一系列对象,所以你可以循环遍历数组,直到找到具有所需home_id
的数组:
var index;
for (index = 0; index < array.length; ++index) {
if (array[index].home_id === 2) {
array.splice(index, 1); // Removes this entry
break; // Exits the loop
}
}
答案 1 :(得分:1)
你所拥有的是一个数组(从解析JSON获得),所以你必须找到正确的索引并拼接它:
function delObjWithHomeId(arr, id) {
for(var i=0; i<arr.length; i++) {
if(arr[i].home_id === id) {
return arr.splice(i,1);
}
}
}
答案 2 :(得分:1)
您发布的内容是一系列对象。这是一个重要的区别 - 虽然在javascript中,而数组是是一种对象。
如您所见,对象可以具有与数据元素对应的字母数字属性名称(索引,如果您愿意)。相比之下,数组在数字上被编入索引,从0开始。它很像一个对象,但属性名称都是数字,并且都按顺序排列。
所以,想象你的数据是这样的:
{
0:{
home_id: 2
home_title: Latest Technologies Development
home_img: tech.png
home_content: Nam feugiat sem diam, ut fermentum orci hendrerit sit amet.
},
1:{
home_id: 239
home_title: שוק פירות וירקות
home_img: http://placehold.it/400
home_content: לורם לורם
},
2:{
home_id: 259
home_title: New Home Item
home_img: http://www.placehold.it/100
home_content: New Item Content
}
}
您可以使用多种方法来操作数组,例如push()
,pop()
,shift()
。要访问特定的一个,您通常会将其循环(除非您已经知道正确的索引)。
循环数组有几种方法,while
是众多可能的方法之一:
var i = 0;
while(var oneItem = myArray[i++]){
if (oneItem.home_id == theItemIdIAmLookingFor) {
myArray.splice(i, 1);
break;
}
}
文档