有两属性的对象数组如何变成一个属性值是新数组的下标一个是新数组的值
时间: 2024-03-05 21:54:38 浏览: 51
您可以使用 JavaScript 中的 reduce() 方法来实现这个功能。以下是一个示例代码:
```javascript
const arr = [{ name: 'Alice', age: 25 }, { name: 'Bob', age: 30 }, { name: 'Charlie', age: 35 }];
const result = arr.reduce((acc, obj) => {
acc[obj.name] = obj.age;
return acc;
}, {});
console.log(result);
```
在上面的代码中,我们首先创建了一个包含两个属性(name 和 age)的对象数组。然后,我们使用 reduce() 方法将它转换为一个新的对象,其中每个属性名(name)都成为了新数组的下标,而每个属性值(age)都成为了新数组的值。最后,我们通过 console.log() 输出了结果。
您可以根据自己的需求修改上面的代码。
相关问题
js如何根据对象数组下标删除数据
您好,可以使用 JavaScript 中的 `splice` 方法来删除对象数组中指定下标的元素。
```javascript
array.splice(index, 1);
```
其中 `index` 表示要删除元素的下标,`1` 表示要删除的元素个数,因为您只需要删除一个元素,所以这里是 `1`。
例如,删除对象数组 `arr` 中下标为 `2` 的元素:
```javascript
let arr = [{name: 'Tom', age: 18}, {name: 'Jerry', age: 20}, {name: 'Lucy', age: 22}];
arr.splice(2, 1);
console.log(arr); // [{name: 'Tom', age: 18}, {name: 'Jerry', age: 20}]
```
注意,`splice` 方法会改变原数组,如果您不想改变原数组,可以先复制出一个新数组,然后对新数组进行操作。同时需要注意的是,对象数组的下标指的是数组中元素的位置,而不是对象中某个属性的值。如果您想根据某个属性的值来删除对象数组中的元素,可以使用 `findIndex` 方法找到该元素的下标,然后使用 `splice` 方法删除该元素。例如:
```javascript
let arr = [{name: 'Tom', age: 18}, {name: 'Jerry', age: 20}, {name: 'Lucy', age: 22}];
let index = arr.findIndex(item => item.name === 'Lucy'); // 找到 name 属性为 'Lucy' 的元素的下标
arr.splice(index, 1);
console.log(arr); // [{name: 'Tom', age: 18}, {name: 'Jerry', age: 20}]
```
VUE 通过指定属性,找到对象再数组中的下标
Vue.js 中,如果你有一个数组并且想要根据某个属性值查找该对象的索引,你可以使用 `Array.prototype.findIndex()` 或者自定义一个函数结合 `filter()` 方法。这里是一个例子:
```javascript
let array = [
{ name: 'Alice', age: 25 },
{ name: 'Bob', age: 30 },
{ name: 'Charlie', age: 20 }
];
// 使用 findIndex() 方法
let index = array.findIndex(item => item.name === 'Bob'); // 如果找到返回索引,否则返回 -1
// 自定义函数查找
function getIndex(obj) {
return array.findIndex(element => element.name === obj.name);
}
let objToFind = { name: 'Alice' };
let customIndex = getIndex(objToFind); // 返回 Alice 对应的索引
阅读全文