const arr=["zhangsan","lisi"]怎么转换为{1:"zhangsan",2:"lisi"}
时间: 2023-10-02 09:05:35 浏览: 36
你可以使用 JavaScript 中的 `Array.prototype.reduce()` 方法来将数组转换为对象,其中 `reduce()` 方法接受两个参数:一个回调函数和一个初始值。回调函数接受四个参数:累加器、当前值、当前索引和原始数组。在每次迭代中,回调函数将累加器更新为一个新对象,该对象包含当前值及其对应的索引作为键。初始值应该是一个空对象 `{}`。
以下是将给定的数组 `arr` 转换为对象的代码:
```javascript
const arr = ["zhangsan", "lisi"];
const obj = arr.reduce((acc, val, idx) => {
acc[idx + 1] = val;
return acc;
}, {});
console.log(obj); // {1: "zhangsan", 2: "lisi"}
```
在上面的代码中,我们在每次迭代中将当前值和索引添加到累加器对象中,键是索引值加一,值是当前值。最终,`reduce()` 方法返回一个对象,其中包含原始数组中的每个值及其对应的索引作为键。
相关问题
const arr=["zhangsan","lisi"]怎么转换为{0:"zhangsan",1:"lisi"}
你可以使用 JavaScript 中的对象解构赋值和 Array.prototype.keys() 方法来实现这个转换。具体实现如下:
```
const arr = ["zhangsan", "lisi"];
const obj = {};
for (const key of arr.keys()) {
obj[key] = arr[key];
}
console.log(obj); // {0: "zhangsan", 1: "lisi"}
```
首先,我们定义了一个数组 `arr`,里面包含了两个元素。然后,我们创建了一个空对象 `obj`,用于存储转换后的结果。
接着,我们使用 `for...of` 循环遍历数组 `arr` 中所有的键值。`keys()` 方法返回一个新的迭代器,包含数组中每个元素的索引键。我们使用 `const key of arr.keys()` 语句定义了一个变量 `key`,并将 `arr.keys()` 的返回值赋值给它。
在循环体内,我们将数组 `arr` 中当前索引键 `key` 对应的值赋值给对象 `obj` 中的相同键。这里使用了对象解构赋值的语法。最后,我们输出了转换后的对象 `obj`。
arr = [{"key":"a","value":1},{"key":"b","value":2}]期望用js实现,得到结果为: {"a":1, "b": 2}
可以使用reduce方法来实现:
```
const arr = [{"key":"a","value":1},{"key":"b","value":2}];
const result = arr.reduce((obj, item) => {
obj[item.key] = item.value;
return obj;
}, {});
console.log(result); // {"a":1, "b": 2}
```
首先,我们创建一个空对象 `{}` 作为 reduce 方法的初始值。然后,对于每个数组元素,我们将其 `key` 属性作为对象的属性名,将其 `value` 属性作为对象的属性值,最后返回更新后的对象。最终得到的结果就是期望的对象。