vue arr1: [{index:1,item:'哈哈'},{index:2,item:'嘿嘿'},{index:3,item:'嘎嘎'}], arr2: [{index:1,item:'qweqwe'},{index:4,item:'asdasd'},{index:5,item:'zxczxc'}], 怎么判断这两数组里面index相等 如果有相等的 则返回arr1item里面的值
时间: 2024-02-25 14:54:20 浏览: 77
vue 重塑数组之修改数组指定index的值操作
可以使用类似于上面提到的方法,通过两层循环遍历两个数组,逐一比较它们的 `index` 值是否相等,如果找到了相等的元素,就返回 `arr1` 中对应元素的 `item` 值。示例代码如下:
```javascript
function findEqual(arr1, arr2) {
for (let i = 0; i < arr1.length; i++) {
for (let j = 0; j < arr2.length; j++) {
if (arr1[i].index === arr2[j].index) {
return arr1[i].item; // 找到相等元素后返回 arr1 中对应元素的 item 值
}
}
}
return null; // 找不到相等元素,返回 null
}
```
需要注意的是,这种方法的时间复杂度也为 O(n^2),在数组长度较大时性能会比较低。如果需要高效地判断两个数组中是否存在相等的元素,并返回对应元素的值,可以先将其中一个数组转换为 Map 对象,以 `index` 为键,以对应元素的值为值,然后遍历另一个数组,使用 Map.get() 方法来获取键对应的值。示例代码如下:
```javascript
function findEqual(arr1, arr2) {
const map = new Map(arr1.map(item => [item.index, item]));
for (let i = 0; i < arr2.length; i++) {
const item = map.get(arr2[i].index);
if (item) {
return item.item; // 找到相等元素后返回对应元素的 item 值
}
}
return null; // 找不到相等元素,返回 null
}
```
这种方法的时间复杂度为 O(n),性能较高。
阅读全文