如何合并数组对象中的两个键值对?能否通过foreach实现?
合并数组对象内部键值对的实现方法
当然可以实现,下面提供几种常见的方式:
方式一:使用forEach遍历修改原数组
这种方式会直接修改原始数组的内容:
const originalArray = [ { "id": "10bf820c19869d1097b0f056c924d9f8", "text1": "Text A", "text2": "Option" }, { "id": "7b6a8f291986955097b0f056c924d981", "text1": "Text B", "text2": "Option" }, { "id": "99ca5a64b45a551097b07caca12ca710", "text1": "Text C", "text2": "Option" } ]; originalArray.forEach(item => { // 合并text1与text2为新的text字段 item.text = `${item.text1} - ${item.text2}`; // 删除不再需要的text1和text2字段 delete item.text1; delete item.text2; }); console.log(originalArray);
方式二:使用map创建新数组(推荐)
这种方式不会修改原数组,而是返回一个全新的目标数组,更符合函数式编程的规范:
const originalArray = [ { "id": "10bf820c19869d1097b0f056c924d9f8", "text1": "Text A", "text2": "Option" }, { "id": "7b6a8f291986955097b0f056c924d981", "text1": "Text B", "text2": "Option" }, { "id": "99ca5a64b45a551097b07caca12ca710", "text1": "Text C", "text2": "Option" } ]; const targetArray = originalArray.map(item => ({ id: item.id, text: `${item.text1} - ${item.text2}` })); console.log(targetArray);
两种方式都能达成你的需求,如果你需要保留原数组,优先选择map;如果不需要保留原数组,forEach也是高效的选择。
内容的提问来源于stack exchange,提问作者Jonis
相关产品推荐
相关产品推荐

