javascript - 如何连接嵌套在另一个对象数组中的对象数组中的字符串?

标签 javascript

这是我正在使用的 JSON 对象:

var object = {
    "units": [
        { "unitNum": "1", "fuels": [{ "fuelDesc": "Coal" }] },
        { "unitNum": "2", "fuels": [{ "fuelDesc": "Pipeline Natural Gas" }] }
    ]
}

将所有 fuelDesc 字符串连接成一个字符串并用 , 分隔的最有效方法是什么?

注意:我在这里简化了对象。实际的对象要大得多,所以我关心性能。此外,燃料数组可以有多个项目。

结果将是“煤炭,管道天然气”。

我这样做了:

var fuelsStr = "";
for (i = 0; i < units.length; i += 1) {
    var mergedFuels = [].concat.apply([], units[i].fuels)
    var unitFuelStr = mergedFuels.map(function (mergedFuels) {
        return mergedFuels["fuelDesc"];
    }).join(",");
    fuelsStr += unitFuelStr;
}

最佳答案

对于 JSON 字符串,JSON.parse reviver可以使用:

a = [], j = '{"units":[{"unitNum":"1","fuels":[{"fuelDesc":"Coal"}]},{"unitNum":"2","fuels":[{"fuelDesc":"Pipeline Natural Gas"}]}]}'

JSON.parse(j, (k, v) => k === "fuelDesc" ? a.push(v) : 0)

console.log(a + '')

对于 JavaScript 对象,JSON.stringify replacer :

a = [], o = {"units":[{"unitNum":"1","fuels":[{"fuelDesc":"Coal"}]},{"unitNum":"2","fuels":[{"fuelDesc":"Pipeline Natural Gas"}]}]}

JSON.stringify(o, (k, v) => k === "fuelDesc" ? a.push(v) : v)

console.log(a + '')

关于javascript - 如何连接嵌套在另一个对象数组中的对象数组中的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47298175/

相关文章:

Javascript:如何数到特定数字?

javascript - Ember.js 所属关系在选择元素(下拉列表)中创建/编辑

javascript - web worker postMessage 处理顺序

javascript - Angular 2 - 获取输入值

javascript - 网络网格关闭分页

javascript - 如何将 'rel' 参数更改为 Photoset-grid?

javascript - 如何使用其样式在javascript中复制行

c# - 来自 C# 的 javascript unicode 属性

javascript - 使用 SimpleDateFormat 设置日期格式

javascript - Mongoose Model.find() 方法在生产环境中损坏的问题