JavaScript技术问询:如何给数组中DAY01对象添加activity.hotel属性?
解决方案:将activity.hotel添加到day数组的DAY01对象中
嘿,这问题挺常见的,我来给你捋捋怎么轻松实现~首先先明确你的初始数据结构(我稍微补全了下方便演示):
const activity = { hotel: "XX酒店 - 豪华大床房" }; // 包含hotel属性的对象 const day = [ {day: 'DAY01'} , {day: 'DAY2'} ]; // 日程数组
下面是几种常用的实现方法:
方法一:用ES6+的find()方法(简洁首选)
这个方法会直接定位到数组中第一个符合条件的对象,然后给它添加属性就行——因为对象是引用类型,修改它会直接同步到原数组里:
// 找到day属性为'DAY01'的对象 const targetDay = day.find(item => item.day === 'DAY01'); // 先判断是否找到目标对象(避免找不到时报错) if (targetDay) { targetDay.hotel = activity.hotel; }
执行完后,day数组就会变成:
[ {day: 'DAY01', hotel: "XX酒店 - 豪华大床房"} , {day: 'DAY2'} ]
方法二:用for循环(兼容性拉满)
如果你的项目需要兼容旧环境(不支持ES6语法),用普通的for循环遍历也是个靠谱的选择:
for (let i = 0; i < day.length; i++) { if (day[i].day === 'DAY01') { day[i].hotel = activity.hotel; break; // 找到目标后就跳出循环,提升效率 } }
额外情况:如果有多个DAY01对象要修改
要是你的day数组里可能存在多个day: 'DAY01'的对象,想给它们都加上hotel属性,可以用forEach()遍历:
day.forEach(item => { if (item.day === 'DAY01') { item.hotel = activity.hotel; } });
内容的提问来源于stack exchange,提问作者mush
相关产品推荐
相关产品推荐

