【问题标题】:How do I remove the keys, but leave the values of result array? [duplicate]如何删除键,但保留结果数组的值? [复制]
【发布时间】:2019-07-29 01:45:12
【问题描述】:

我从 node.js MySQL 查询中提取多行,我希望格式为:

["value1","value2","value3"]

但是我目前的结果是:

[{"temperature":value1},{"temperature":value2},{"temperature":value3}]

我不想要密钥,它是来自同一个 MySQL 列的所有数据。

var sql = "SELECT temperature FROM temperatures";
        con.query(sql, function (err, result) {
            if (err) throw err;
                console.log(result);
                let data = JSON.stringify(result);
                fs.writeFileSync('results.json', data);

我有时间重写代码。谢谢大家,地图功能很好用。

var sql = "SELECT temperature FROM temperatures";
        con.query(sql, function (err, result) {
            if (err) throw err;
                var newresult = result.map( value => value.temperature);
                let data = JSON.stringify(newresult);
                console.log('Queried JSON Data: \n' + data + '\n');
                fs.writeFileSync('results.json', data);
        });
    };

【问题讨论】:

    标签: node.js json


    【解决方案1】:

    您可以使用 forEach 或 Map

    var kvArray = [{"temperature":"value1"},{"temperature":"value1"},{"temperature":"value1"}];
    
    //example for map.
    var rObj = kvArray.map( value => value.temperature);
    
    //example for foreach.
    
    var rObj = [];
    kvArray.forEach( (value) => { 
       return rObj.push(value.temperature);   
    });
    
    console.log(kvArray , rObj)
    // rObj = (3) ["value1", "value1", "value1"]
    
    // kvArray is still: 
    //[{"temperature":"value1"},{"temperature":"value1"},{"temperature":"value1"}];
    
    

    【讨论】:

    • 这会生成一个嵌套数组……这不是操作想要的。
    • 这稍微好一点,但你做的太多了——你只需要:var rObj = kvArray.map( value => value.temperature)
    • @MarkMeyer 当我这样做时,我没有定义。这很奇怪。但这应该是最好的答案。
    • 谢谢,我试试地图功能。
    【解决方案2】:

    我正在扫描字典数组,每次都加入每个字典的值。这是更通用的方法,这意味着即使您在每个字典中有多个值,它的工作方式也是一样的。

    let make_results = (result) => {
      let values_only = [];
      result.forEach((r) => {
        values_only = values_only.concat(Object.values(r));
      });
      return values_only;
    }
    
    let result = [{
      "temperature": 1
    }, {
      "temperature": 2
    }, {
      "temperature": 3
    }];
    
    console.log(make_results(result));

    那我只是在你的代码中使用make_results 函数:

    var sql = "SELECT temperature FROM temperatures";
            con.query(sql, function (err, result) {
                if (err) throw err;
                    console.log(result);
                    let data = JSON.stringify(make_results);
                    fs.writeFileSync('results.json', data);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-19
      • 2019-10-27
      • 1970-01-01
      • 1970-01-01
      • 2016-03-19
      • 2015-03-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多