我想创建一个简单的对象。
示例:{house:' house,cat:' cat',dog:' dog',45:45}
然而,javascript总是采用我的数组中的数字
示例:45 - 45:45
并将其放在我对象的顶部/前面。
问题1:为什么会发生这种情况?
问题2:如何按照数组中的顺序创建包含项目的对象(是的我知道它们放在一个物体中的方式并不重要,因为它们都有钥匙,但请帮忙。
let jakesLife = [
'house',
'cat',
'dog',
45
]
function x () {
let obj = {};
for (let i = 0; i < jakesLife.length; i++) {
obj[jakesLife[i]] = jakesLife[i];
}
return obj;
}
x()
答案 0 :(得分:1)
对象是无序的。这就是为什么我们有阵列。您订购的密钥列表应足以在您需要时获得有序访问。
如果您经常需要,可以创建一个处理此对象的对象类型。
let jakesLife = [
'house',
'cat',
'dog',
45
]
class Ordered {
constructor(arr) {
this.__keys = arr;
arr.forEach(k => this[k] = k)
}
each(callback) {
this.__keys.forEach(k => callback(this[k], k))
}
}
var o = new Ordered(jakesLife);
o.each(v => console.log(v));