如何使用JavaScript数组通过for循环一次检索所有JSON对象的值

问题描述 投票:0回答:4

在JavaScript中,有没有一种方法可以使用数组循环遍历并在for循环中一次检索JSON对象的值?

我有一个专用于JSON对象中键的数组:

var PersonArrayKeys = ["LastName", "FirstName", "MiddleName"];

还有我的JSON对象:。

var javaObj = '{ "LastName": "LN", "FirstName": "FN", "MiddleName": "MN"}
var obj = JSON.parse(javaObj);

[如果我像这样引用对象的键,就可以得到值,

console.log(obj.LastName);

但是如果可能的话,我想一口气拿走所有这些。这是我唯一想到的,但是它给出了“意外令牌:JSON中的消息。”

var objText;
for (j = 0; j < PersonArrayKeys.length; j++) {
     console.log(PersonArrayKeys[j] + " key");
     objText += obj.PersonArrayKeys[j];
}
console.log(objText);
javascript json for-loop keyvaluepair
4个回答
0
投票

我不确定您要问什么,但您可以100%地使用for ... in循环来执行我认为您要问的事情。 for ... in循环是在对象上循环的一种简便方法。请参见下面的示例,其中我注销了键和值。

var javaObj = '{ "LastName": "LN", "FirstName": "FN", "MiddleName": "MN"}';
var obj = JSON.parse(javaObj);

var text = '';
for(var item in obj) {
  console.log(item + " " + obj[item])
  text += obj[item];
}
console.log(text);

0
投票

您可以编码objText += [obj.PersonArrayKeys[j]];

var objText;
for (j = 0; j < PersonArrayKeys.length; j++) {
     console.log(PersonArrayKeys[j] + " key");
     objText += obj.[PersonArrayKeys[j]];
}

0
投票

很难说出您要查找的内容,但是类似的方法应该可以工作。

const javaObj = '{ "LastName": "LN", "FirstName": "FN", "MiddleName": "MN"}'
const obj = JSON.parse(javaObj);
let result = "";
Object.keys(obj).forEach(k => result += obj[k] + " ");
console.log(result);

0
投票

您可以解构对象。既然您知道密钥,我建议以下...


0
投票

您也可以使用此oneliner代替循环-它枚举所有值并将它们合并为一个字符串。

© www.soinside.com 2019 - 2024. All rights reserved.