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

How to use a JavaScript array to retrieve a JSON object's values all at once via a for loop

在 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);

但如果可能的话,我想一次搞定所有这些。这是我唯一能想到的,但它给出了 "Unexpected token : in JSON."

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

我不是 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);

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

var PersonArrayKeys = ["LastName", "FirstName", "MiddleName"];
var javaObj = '{ "LastName": "LN", "FirstName": "FN", "MiddleName": "MN"}';
var obj = JSON.parse(javaObj);
console.log(obj);
var objText='';
for (j = 0; j < PersonArrayKeys.length; j++) {
     objText += obj[PersonArrayKeys[j]];
}
console.log(objText)

你可以解构对象。既然你知道钥匙,我建议如下...

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

您也可以使用这个 oneliner 而不是循环 - 它枚举所有值并将它们合并为一个字符串。

var objText = Object.values(obj).join(' ')
console.log(objText)