迭代数据以获得价值

 小麻雀yuuri 发布于 2023-02-03 10:00

我有以下循环

for (var i in data) {
   console.log(data[i])
}

我循环迭代的数据是

 "data": [
    {
      "MainArea": "North West"
    },
    {
      "MainArea": "South West"
    },

当我运行它时,我在firebug中得到以下输出

[Object { MainArea="North West"}, 
Object {  MainArea="South West"}]

我想要得到的只是它的价值.所以,当我尝试

console.log(data[i].MainArea)

希望得到"西北"和"西南"的价值观,而不是在我的控制台中得到"未定义".

1 个回答
  • 试试以下:

    console.log(data[i].MainArea);
    

    您正试图从对象属性中获取信息.由于您的变量包含在json格式列表中,因此您可以通过命名属性访问变量.

    更新:根据您对原始问题的补充,我创建了DEMO.

    var myObj = {"data": [
                            {
                              "MainArea": "North West"
                            },
                            {
                              "MainArea": "South West"
                            },
                        ],
               },
        data = myObj['data'],
        data_length=data.length;
    
    for (var i= 0; i < data_length; i++)
    {
       console.log(data[i].MainArea);
    }     
    

    请记住,当您迭代键值对时,您应该使用for ... in循环,而在迭代数组时,您应该使用for循环.例如,如果您的data属性包含有序数组,则for ... in循环将无法保证从数组项循环0N.这意味着它不会遵循顺序.因此,仅对for数组和for ... in非数组对象使用循环.在这里阅读此内容.这里可以看到一些jsPerf比较.

    2023-02-03 10:02 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有