var node = {
node: {
name: "someone1",
city: "somewhere1",
state: "someplace1"
},
node : {
name: "someone2",
city: "somewhere2",
state: "someplace2"
},
node : {
name: "someone3",
city: "somewhere3",
state: "someplace3"
}
};
console.log(JSON.stringify(node.node));
//Output is {"name":"someone3","city":"somewhere3","state":"someplace3"}
但是我需要完整的数据,就像我输入node.name时一样。所有名称都应该显示
最佳答案
您不应保留具有相同名称属性的对象,对象内的键应保持唯一。您可以拥有一个数组并对其进行循环
var node = [
{
name: "someone1",
city: "somewhere1",
state: "someplace1"
},{
name: "someone2",
city: "somewhere2",
state: "someplace2"
}, {
name: "someone3",
city: "somewhere3",
state: "someplace3"
}
]
node.forEach(function(item){
console.log(item.name);
})
更新:考虑到注释中指出的嵌套对象,设置输入值。
您需要递归来查找嵌套对象中的所有名称
$(function(){
var node = {
"id": "429428",
"name": "something",
"state": {
"filter": "98887"
},
"node": {
"id": "49888",
"name": "something2",
"state": {
"filter": "48765"
},
"node": {
"id": "428866",
"name": "something3",
"state": {
"filter": "998898"
}
}
}
}
var arr = [];
function getValues(node, arr) {
for (prop in node) {
console.log(prop);
if(prop == "name") {
arr.push(node[prop]);
}
if(prop == "node") {
getValues(node[prop], arr)
}
}
}
getValues(node, arr)
console.log(arr.join(" "));
document.getElementById('ip').value = arr.join(" ");
})
<input type="text" id="ip"/>
关于javascript - javascript/jquery 中的对象问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42835754/