JS一个json对象如何遍历出每一个的值?

clipboard.png
我现在要获取里面的name值该怎么办。

阅读 6.2k
6 个回答

首先你这个结构应该作为一个数组比较合适:

var data = [
  {name: 'asdfadfa'},
  {name: 'asdfadfa'},
  {name: 'asdfadfa'},
  {name: 'asdfadfa'},
  {name: 'asdfadfa'},
  {name: 'asdfadfa'}
];

然后按照你给的结构,这样遍历:

for(let i in data) {
  console.log(data[i].name);
}

若改成数组,则这样遍历:

for(let obj of data) {
  console.log(obj.name);
}

更多数组和对象遍历方法,请搜索“js 遍历数组”和“js 遍历对象”。

用Object.keys转成数组

Object.keys(data).map(key => {
    console.log(data.key.name);
})

使用ES6语法,一行可以解决:

var data = {
  1:{name: 'asdfadfa'},
  2:{name: 'asdfadfa'},
  3:{name: 'asdfadfa'},
  4:{name: 'asdfadfa'},
  5:{name: 'asdfadfa'},
  6:{name: 'asdfadfa'}
}

Object.values(data).map(x => x.name)

clipboard.png

新手上路,请多包涵

虽然这数据结构更应该使用数组,不过如果你想遍历这样的对象,你可以使用:
var data = {
0: {name: 'asdfadfa'},
1: {name: 'asdfadfa'},
2: {name: 'asdfadfa'},
3: {name: 'asdfadfa'},
4: {name: 'asdfadfa'},
5: {name: 'asdfadfa'}
};

data.length = 6;

Array.prototype.slice.call(data).map(val => val.name)

var data = {

    1 : {name: 'qweqweqwe'},
    2 : {name: 'qweqweqwe'},
    3 : {name: 'qweqweqwe'},
    4 : {name: 'qweqweqwe'}
  }

  for(let i in data){
    console.log(data[i].name)
  }

es6的object.values方法,直接转换成数组

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题