
本文将介绍如何在 JavaScript 中,针对一个包含日期和时间信息的对象,将特定元素从数组中取出并移动到另一个数组,同时避免修改原始数据。我们将通过 Object.values()、flat() 和 reduce() 方法来实现这一目标,确保数据的完整性和可维护性。
核心思路是将对象的所有值(即数组)提取出来,然后将这些数组扁平化为一个单一的数组。最后,使用 reduce() 方法,根据每个对象的 day 属性,将它们重新组合成一个新的对象。这样,原始对象就不会被修改。
假设我们有以下数据结构:
const days = {
"monday": [{
"day": "monday",
"type": "open",
"value": 43200
},
{
"day": "monday",
"type": "close",
"value": 75600
}
],
"tuesday": [{
"day": "tuesday",
"type": "open",
"value": 43200
},
{
"day": "tuesday",
"type": "close",
"value": 75600
}
],
"wednesday": [{
"day": "wednesday",
"type": "open",
"value": 43200
},
{
"day": "wednesday",
"type": "close",
"value": 75600
}
],
"thursday": [{
"day": "thursday",
"type": "open",
"value": 43200
},
{
"day": "thursday",
"type": "close",
"value": 75600
}
],
"friday": [{
"day": "friday",
"type": "open",
"value": 36000
}],
"saturday": [{
"day": "friday",
"type": "close",
"value": 3600
},
{
"day": "saturday",
"type": "open",
"value": 36000
}
],
"sunday": [{
"day": "saturday",
"type": "close",
"value": 3600
},
{
"day": "sunday",
"type": "open",
"value": 43200
},
{
"day": "sunday",
"type": "close",
"value": 75600
}
]
}
const result = Object.values(days).flat().reduce((acc, o) => {
(acc[o.day] ??= []).push(o);
return acc;
}, {});
console.log(result);通过使用 Object.values()、flat() 和 reduce() 方法,我们可以高效且安全地将数组中的元素移动到另一个数组,同时保持数据的不可变性。这种方法在处理复杂数据结构时非常有用,可以提高代码的可维护性和可读性。
立即学习“Java免费学习笔记(深入)”;
以上就是JavaScript:如何在不改变原数组的情况下,将数组中的元素移动到另一个数组的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号