js中如何判断2个数组里面属性名一样时进行存储数据
时间: 2023-11-22 12:55:34 浏览: 37
可以使用双重循环来比较两个数组中的每一个元素,判断它们的属性名是否一致,如果一致则将数据存储到一个新的数组中。示例代码如下:
```javascript
var arr1 = [{name: '张三', age: 18}, {name: '李四', age: 20}];
var arr2 = [{name: '张三', score: 80}, {name: '王五', score: 90}];
var result = [];
for (var i = 0; i < arr1.length; i++) {
for (var j = 0; j < arr2.length; j++) {
if (arr1[i].name === arr2[j].name) {
result.push({name: arr1[i].name, age: arr1[i].age, score: arr2[j].score});
}
}
}
console.log(result); // 输出 [{name: '张三', age: 18, score: 80}]
```
在上面的示例中,我们首先定义了两个数组 `arr1` 和 `arr2`,分别存储了不同的数据。然后我们定义了一个新的数组 `result`,用来存储属性名相同的元素。接着我们使用两个嵌套的循环来遍历两个数组中的每一个元素,判断它们的属性名是否一致,如果一致则将数据存储到 `result` 数组中。最后我们输出 `result` 数组,即可得到属性名相同的元素。
相关问题
用js判断一个数组中每个对象name是否一样
可以使用一个循环遍历数组中的每个对象,然后将对象的name属性存储在一个新数组中,再使用Set数据结构去重,最后判断去重后数组的长度是否为1即可。
代码示例:
```javascript
function checkSameName(arr) {
let nameArr = [];
for (let i = 0; i < arr.length; i++) {
nameArr.push(arr[i].name);
}
return new Set(nameArr).size === 1;
}
```
使用示例:
```javascript
const arr1 = [{ name: 'Tom' }, { name: 'Tom' }, { name: 'Tom' }];
console.log(checkSameName(arr1)); // true
const arr2 = [{ name: 'Tom' }, { name: 'Jerry' }, { name: 'Tom' }];
console.log(checkSameName(arr2)); // false
```
生成一个判断两个数组是否有重复数据的js方法
A:
以下是一个判断两个数组是否有重复数据的JavaScript方法:
```javascript
function hasDuplicate(arr1, arr2) {
// 将两个数组合并
const arr = arr1.concat(arr2);
// 创建一个空对象用于存储每个元素出现的次数
const obj = {};
// 遍历数组中的每个元素
for (let i = 0; i < arr.length; i++) {
// 如果元素已经存在于对象中,说明该元素重复了
if (obj[arr[i]]) {
return true;
}
// 否则,将该元素作为属性名存入对象中,并设置初始值为1
obj[arr[i]] = 1;
}
// 如果没有重复元素,返回false
return false;
}
```
该方法的思路是将两个数组合并成一个数组,然后遍历该数组中的每个元素,使用对象来记录每个元素出现的次数,如果某个元素的次数超过了1,则该元素就是重复元素,返回true。如果遍历完整个数组都没有重复元素,就返回false。