【问题标题】:Looping / iterating through an array of objects to return and array of strings - Javascript循环/迭代对象数组以返回和字符串数组 - Javascript
【发布时间】:2016-05-29 20:51:24
【问题描述】:

我有一个如下所示的对象数组:

[{"key":"aaa","value":true},{"key":"bbb","value":false},{"key":"ccc","value":true}]

我怎样才能遍历它来获得一个数组?

["aaa", "bbb", "ccc"]

我正在使用 node.js,这是代码。当我遍历它时,我只返回第一个“aaa”并且我想要一个变量是一个数组 3 个对象?

router.get('/', function(req, res, next) {
    db.executeSql("SELECT this FROM that", function (data, err) {
        if (err) {       
            res.json(err);
        } 
        else {
            for (var i in data) {
                    for (var i=0; i < data.length; i++) {
                        var obj = data[i];
                        for (var property in obj) {
                            var a = (obj[property]);
                                res.json(a);
                                }
                    }
                }
            }   
        }   
        res.end();
    });
  });

如果你能指出正确的方向或给我一些例子,谢谢!

【问题讨论】:

    标签: javascript arrays node.js loops


    【解决方案1】:
    var input = [{"key":"aaa","value":true},{"key":"bbb","value":false},{"key":"ccc","value":true}];
    
    var output = input.map(function(datum){
        return datum.key;
    });
    

    返回一个由 ["aaa", "bbb", "ccc"] 组成的数组

    【讨论】:

    • 将此代码添加到 else 语句后 var output = data.map(function(datum){ return datum.key; }); res.json(输出);它返回 [null,null]
    • 我看到您在下面发现了您的问题。一般来说,可以通过你最喜欢的 javascript 解释器运行我上面的示例,并看到 output 在这种情况下实际上等于 ["aaa", "bbb", "ccc"]。所以,这里有几种可能性:也许输入是错误的并且它们不匹配。也许您使用代码 sn-p 的方式不起作用。或者调用者可能没有正确获得结果。添加调试语句(console.log 或其他)通常可以帮助您进一步缩小问题范围。
    • 你说得对,我使用了错误的查询语句。现在我可以看到 map 函数没有映射它只是返回整个数组。我在其他地方测试过它确实有效。你认为它可能与我正在使用的 mssql 模块有关还是我在某个地方的错误?
    【解决方案2】:
    var newArr = [];
    var data = [{"key":"aaa","value":true},{"key":"bbb","value":false},{"key":"ccc","value":true}];
    for(var i=0;i<data.length;i++){
        newArr.push(data[i].key);
    }
    return newArr;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-29
      • 2019-02-27
      • 2016-11-12
      相关资源
      最近更新 更多