【发布时间】:2018-02-08 03:51:17
【问题描述】:
如下给出一个对象数组:
var objArray = [{'key': 'key1', 'fields': [1, 2]}, {'key': 'key2', 'fields': [3, 4]}];
我想从 fields 属性中获取一个合并项的数组,输出应该是 1, 2, 3, 4
我尝试如下合并。我对我的解决方案不满意,希望获得反馈并改进我的解决方案。我是 JS 和打字稿的新手。我相信 ES6 的特性有更好的解决方案。 有人可以帮助改进我的解决方案吗?
function mergeArraysFromObjectArray(objArray){
let allFields = [];
for (let obj of objArray) {
for (let propt in obj) {
if (obj.hasOwnProperty(propt) && propt === 'fields') {
allFields = allFields.concat(obj[propt]);
}
}
}
return allFields;
}
var objArray = [{'key': 'key1', 'fields': [1, 2]}, {'key': 'key2', 'fields': [3, 4]}];
let allMergedFields = mergeArraysFromObjectArray(objArray);
for(let i=0; i < allMergedFields.length; i++){
console.log(allMergedFields[i]); //prints - 1, 2, 3, 4
}
【问题讨论】:
-
对于您想要审查的工作代码,请参阅codereview.stackexchange.com
-
检查答案是你想要的
-
我投票结束这个问题,因为它更适合codereview.stackexchange.com
-
被建议为题外话的问题应移至 codereview.stackexchange.com,而不是基于意见关闭。
标签: javascript arrays typescript ecmascript-6