打印对象的键和值

Dan*_*nia 15 javascript json

我想从javascript对象打印一个键:值对.我可以在我的数组中使用不同的键,因此无法将其硬编码到object [0] .key1

var filters = [{"user":"abc"},{"application":"xyz"}];
console.log(Object.keys(filters[0])[0]); // prints user
var term = (Object.keys(filters[0])[0]);
console.log(filters[0].term); // prints undefined
Run Code Online (Sandbox Code Playgroud)

如何打印密钥的值

Juz*_*Ali 21

for (key in filters[0]){
    console.log( key + ": " + filters[0][key]);
}
Run Code Online (Sandbox Code Playgroud)

或者,如果要打印过滤器的所有值

for (i in filters){
    console.log(i);
    for (key in filters[i]){
        console.log( key + ": " + filters[i][key]);
    }
}
Run Code Online (Sandbox Code Playgroud)

关于@mplungjan的评论

filters.forEach(function(obj, index){
    console.log(index);
    for (var key in obj){
        console.log(key, obj[key]);
    }
});
Run Code Online (Sandbox Code Playgroud)

  • for in 不建议用于数组,您应该保留 key 和 i 本地 (2认同)

Jam*_*ice 5

这是寻找一个term属性filters[0]:

console.log(filters[0].term);
Run Code Online (Sandbox Code Playgroud)

你真正想要做的是使用term(在你的例子,这将是"user")作为属性标识符:

console.log(filters[0][term]);
Run Code Online (Sandbox Code Playgroud)


mpl*_*jan 5

for 数组的 for 循环和对象的 for..in 迭代:

var filters = [{ "user": "abc"}, {"application": "xyz"}];

for (var i = 0; i < filters.length; i++) { // the plainest of array loops
  var obj = filters[i];
  // for..in object iteration will set the key for each pair
  // and the value is in obj[key]
  for (var key in obj) { 
    console.log(key, obj[key])
  }
}
Run Code Online (Sandbox Code Playgroud)

ES6

[{ "user": "abc"}, {"application": "xyz"}].forEach(
  obj => console.log(Object.entries(obj).flat())
)
Run Code Online (Sandbox Code Playgroud)