vue3 js 比较两个二维数组,长度不一致,第二层数组中包对象,通过id对比 将有值的数据放入没有值的数据中
时间: 2024-02-24 15:54:18 浏览: 88
如果两个数组的长度不一致,我们需要先找到两个数组中长度较小的那个,然后在这个长度范围内进行比较和赋值。
具体代码如下:
// 假设两个数组分别为 arr1 和 arr2
const len = Math.min(arr1.length, arr2.length);
for (let i = 0; i < len; i++) {
for (let j = 0; j < arr2[i].data.length; j++) {
if (arr1[i].id === arr2[i].id) { // 判断对象的 id 是否相等
if (arr2[i].data[j].value) { // 判断数据是否有值
arr1[i].data[j].value = arr2[i].data[j].value; // 将有值的数据放入 arr1 中
}
}
}
}
需要注意的是,这里假设 arr1 和 arr2 的长度不一致,但是第二层数组的长度是一致的,如果第二层数组的长度也不一致,需要进行额外的处理。
相关问题
vue3 js 比较两个二维数组,第一层和第二层长度都不一致,第二层数组中包对象,通过id对比 将有值的数据放入没有值的数据中
如果两个数组的第一层和第二层的长度都不一致,我们需要在双重循环的时候,增加对第二层数组长度的判断。具体代码如下:
// 假设两个数组分别为 arr1 和 arr2
for (let i = 0; i < arr1.length; i++) {
for (let j = 0; j < arr2.length; j++) {
if (arr1[i].id === arr2[j].id) { // 判断对象的 id 是否相等
const len = Math.min(arr1[i].data.length, arr2[j].data.length);
for (let k = 0; k < len; k++) {
if (arr2[j].data[k].value) { // 判断数据是否有值
arr1[i].data[k].value = arr2[j].data[k].value; // 将有值的数据放入 arr1 中
}
}
}
}
}
需要注意的是,这里假设 arr1 和 arr2 的第一层和第二层的长度都不一致,但是第二层数组的长度是一致的,如果第二层数组的长度也不一致,需要进行额外的处理。
vue3 js 比较两个二维数组,第二层数组中包对象,通过id对比 将有值的数据放入没有值的数据中
可以使用双重循环来遍历两个二维数组,然后通过对比对象的id来判断是否是同一个对象,并将有值的数据放入没有值的数据中。
具体代码如下:
// 假设两个数组分别为 arr1 和 arr2
for (let i = 0; i < arr1.length; i++) {
for (let j = 0; j < arr2.length; j++) {
if (arr1[i].id === arr2[j].id) { // 判断对象的 id 是否相等
for (let k = 0; k < arr2[j].data.length; k++) {
if (arr2[j].data[k].value) { // 判断数据是否有值
arr1[i].data[k].value = arr2[j].data[k].value; // 将有值的数据放入 arr1 中
}
}
}
}
}
需要注意的是,这里假设 arr1 和 arr2 的长度是一致的,如果长度不一致,需要进行额外的处理。
相关推荐









