如何使用 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)
在 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)