JS- 如何将具有键值对的数组转换为对象?

时间:2020-12-23 17:18:57

标签: javascript arrays json

var arr = [];
arr['k1'] = 100;
console.log(arr); //o/p - [k1: 100]
arr.length;       //o/p - 0
window.copy(arr);   //copies: []

我想将这个类似数组的对象转换为合适的对象,即

arr = { k1: 100}

这样做 window.copy(arr) 应该复制 {k1:100}

注意 - 我需要这样做,因为 Node.js express 服务器返回空数组以响应这种情况。

2 个答案:

答案 0 :(得分:1)

您可以使用对象扩展语法将所有自己的可枚举属性从原始对象复制到新对象:

const arr = [];
arr['k1'] = 100;
const obj = { ...arr };

console.log(obj);

即使 arr 最初是一个数组,而不是一个普通对象,这也有效,因为 k1 属性直接存在于数组中。

(但理想情况下,永远不应该将代码分配给数组的任意属性 - 在这种情况下最好重构它以使用对象开始)

答案 1 :(得分:1)

var array = []
array["k1"] = 100;
var newObject = Object.assign({},array);
console.log(newObject);