+后如何使用点号

时间:2019-05-13 19:47:15

标签: javascript json

我在另一个文件中有JSON数据,我正在从模块文件中访问它。我正在使用循环轻松获取大量数据,但遇到了问题。当使用点符号时,它变为cars.c1.name,但在我的示例中为cars.c+i+ ..然后它停止,因为我不知道如何向其中添加.name

这是一个测试项目,我尝试了谷歌搜索,但这是一个特殊的问题。

JSON的片段:

"c1": {
            "id": 1,
            "name": "Sprinter Boxtruck",
            "make": "Mercedes",
            "price": "£500,000",
            "topspeed": "87mph",
            "vip": "false"
        },

相关常量:

const carName = cars.c+i+.name; // not working

i是我使用循环的常量。

对于我来说,预期结果将是有4个不同的对象,实际-没有抛出错误,但是它不起作用。

3 个答案:

答案 0 :(得分:3)

这是您正在做的事情的问题:

const carName = cars.c+i+.name; // not working

要通过键获取json值,您需要在方括号中指定键。 cars是JSON对象,密钥为“ c1”,“ c2”,“ c3”等。另外,您尝试获取多个值,密钥格式为“ c” + i。

const carName = cars["c"+ i].name;

上面的代码行显示了如何正确获取JSON值。

答案 1 :(得分:1)

您需要在此处使用括号符号:

cars[`c${i}`].name

基本上,c${i}正在创建变量名称c1, c2, c3, etc

更新 感谢@stevendesu,某些浏览器可能不支持反勾号运算符。所以这是使用字符串concat的相同答案:

cars["c" + i].name

答案 2 :(得分:1)

这将满足您的需求

var cars = {
  "c1": {
    "id": 1,
    "name": "Sprinter Boxtruck",
    "make": "Mercedes",
    "price": "£500,000",
    "topspeed": "87mph",
    "vip": "false"
  }
};

var i = 1;
var carName = cars['c' + i].name;

console.log(carName);