【问题标题】:How to use a JavaScript array to retrieve a JSON object's values all at once via a for loop如何使用 JavaScript 数组通过 for 循环一次性检索 JSON 对象的值
【发布时间】:2019-12-19 02:01:31
【问题描述】:

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

【问题讨论】:

  • 您想一次性获取所有值吗?
  • @MattOestreich 是的,如果可能的话。对不起,我以为我已经解释过了。我会调整问题中的措辞。
  • 无论你在 SO 上写什么问题,都要读 2-3 遍,让它变得简单。这将为试图帮助您的人节省一些时间。

标签: javascript json for-loop keyvaluepair


【解决方案1】:

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

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

【讨论】:

  • 将此标记为答案,因为它简短、甜美且简单。那我完全忘记了对象构造器!谢谢!
【解决方案2】:

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

【讨论】:

  • 啊,我明白了!我没想到!我被困在 for 循环上,因为其余的代码都使用了它。这也回答了这个问题,但不幸的是我不能有多个标记答案:(
【解决方案3】:

您可以编码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)

【讨论】:

  • 对不起,我已经试过了,但仍然给我同样的错误。
  • @Nondeplume 那是因为你在javaObj 末尾缺少一个' 是什么错误?
  • @Spangle 谢谢你的理解,但不是因为我在做 copy-n-pasta 时遗漏了一些数据。调整了我的问题来解决这个问题。
  • @RyanNghiem 是的,这正是我想要实现的目标!谢谢!!不幸的是,我只能标记一个答案:(
【解决方案4】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    • 2012-03-04
    • 1970-01-01
    • 1970-01-01
    • 2010-10-29
    • 1970-01-01
    • 2016-07-09
    相关资源
    最近更新 更多