js 数组 取相同字段返回新数组
时间: 2024-08-22 07:02:06 浏览: 30
在JavaScript中,如果你有一个数组,每个元素都是对象,并且你想根据某个共同的字段(属性)创建一个新的数组,只包含这个字段的值,你可以使用`map()`方法。下面是一个示例:
```javascript
let oldArray = [
{name: 'John', age: 25},
{name: 'Jane', age: 30},
{name: 'Mike', age: 35}
];
function extractField(array, field) {
return array.map(obj => obj[field]);
}
let namesOnlyArray = extractField(oldArray, 'name');
console.log(namesOnlyArray); // 输出:['John', 'Jane', 'Mike']
```
在这个例子中,`extractField`函数接受一个数组和一个字段名作为参数,然后使用`map()`遍历原数组,对每个对象取出指定的字段并返回新的只包含该字段值的新数组。
相关问题
js 把两个对象数组有相同字段的对象合并
在JavaScript中,如果你想将两个对象数组合并,并保留其中相同的对象,可以使用`Array.prototype.reduce()`函数配合对象字面量或者`Object.assign()`方法。这里有一个示例:
```javascript
function mergeObjects(arr1, arr2) {
// 使用reduce和Object.assign来合并对象
return arr1.reduce((acc, obj) => {
acc[obj.commonField] = Object.assign({}, obj, arr2.find(item => item.commonField === obj.commonField));
return acc;
}, {});
}
// 假设你有两个对象数组,每个对象都有一个共同字段"field"
let array1 = [{ field: 'value1', otherField: 'extra1' }, { field: 'value2', otherField: 'extra2' }];
let array2 = [{ field: 'value1', anotherField: 'otherExtra1' }, { field: 'value3', anotherField: 'otherExtra2' }];
let mergedArray = mergeObjects(array1, array2);
console.log(mergedArray);
```
在这个例子中,我们通过`commonField`将两个数组中的对象进行匹配。如果找到匹配项,就使用`Object.assign()`合并它们。如果没有找到,则从第二个数组中添加新的对象。
js遍历数组添加新字段
可以使用for循环遍历数组,并使用点语法为每个数组元素添加新字段。以下是一个示例代码:
```javascript
var arr = [{name: 'Alice', age: 20}, {name: 'Bob', age: 25}, {name: 'Charlie', age: 30}];
for (var i = 0; i < arr.length; i++) {
arr[i].gender = 'unknown';
}
console.log(arr);
```
在上面的代码中,我们首先定义了一个包含三个对象的数组。然后,我们使用for循环遍历数组,并为每个对象添加一个名为gender的新字段,并将其值设置为'unknown'。最后,我们使用console.log()函数输出修改后的数组。