这是我正在使用的 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/