javascript - javascript/jquery 中的对象问题

标签 javascript jquery

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/

相关文章:

javascript - 这些 core-js 包有什么作用? (fix-re-wks, task, iter-define, 等等)

javascript - 可以在 Chrome 的 JavaScript 中获取 V8 JavaScript 引擎版本号

javascript - 在变量中声明函数会影响性能吗?

javascript - 如何合成和压缩 Javascripts (.net ajax) 以获得最佳性能

javascript - .CSV 文件数组到 CSS 元素

javascript - 立即检测输入[type ="text"]的变化

javascript - 适用于 JavaScript 禁用用户的 SlidesJS

javascript - 每 0.2 秒运行一次 mousedown 事件,直到鼠标松开

带有 jPlayer 的 Javascript 模式

javascript - 如何在 document.body.innerHTML 上使用 jQuery 选择器