javascript - Javascript推入两个for循环覆盖数组
问题描述
我想循环一个对象数组和另一个数组来创建一个新数组。
This.wholeWeek = [{test: "1"}, {test2: "2"}, {test3: "3"}]
This.courtData = [1, 2, 3]
结果我想得到:
[{test: "1", court: 1}, {test: "1", court: 2}, {test: "1", court: 3}, {test2: "2", court: 1}, {test2: "2", court: 2}, {test2: "2", court: 3}, {test3: "3", court: 1}, {test3: "3", court: 2}, {test3: "3", court: 3}]
代码:
this.courtTD = [];
for (let i = 0; i < this.wholeWeek.length; i++) {
for (let s = 1; s <= this.courtData.length; s++) {
const week = this.wholeWeek[i];
week.court = s;
this.courtTD.push(week);
}
}
但我的方法给了我:
[{test: "1", court: 3}, {test: "1", court: 3}, {test: "1", court: 3}, {test2: "2", court: 3}, {test2: "2", court: 3}, {test2: "2", court: 3}, {test3: "3", court: 3}, {test3: "3", court: 3}, {test3: "3", court: 3}]
非常感谢您的每一次帮助!谢谢!
解决方案
你可以试试这个代码:
let arr = [{test: "1"}, {test2: "2"}, {test3: "3"}];
let arr_1 = [1, 2, 3];
let result = [];
for (let i = 0; i < arr.length; i++) {
for (let j = 0; j < arr_1.length; j++) {
let obj = JSON.parse(JSON.stringify(arr[i])); // copy of object
obj.court = arr_1[j];
result.push(obj);
}
}
您应该制作一个对象的副本。
推荐阅读
- ruby - 使用 chef-run 安装特定的 Ruby 版本
- mongodb - MongoDB:批量更改python中的所有字段类型
- java - 从用户那里获取输入并打印数字的递减模式
- java - 如何将计时器指标添加到 java.util.Stream
- c++ - 用于集成 Visual Studio 单元测试的 CMake 文件
- android - 如何继续搜索匹配的玩家,然后停止在 Firebase 数据库中的搜索
- reactjs - 在使用弹出的反应应用程序的docker容器中获取多个node_modules?
- scala - Spark SQL:在具有成对列(AB)和(BA)的行中选择最大值
- javascript - 流式输出结果文本到语音
- c++ - C++ 地图迭代器