Javascript 在数组中添加对象的键值对

Javascript 在数组中添加对象的键值对,javascript,Javascript,这不是给我钥匙。它为每个键提供“键”。 在数组中添加{key:value}对对象的正确方法是什么 更新 基于下面的K3N解决方案,我认为,如果我们每次都从构造函数声明,这是最有效的方法: function Person (name, age) { this.name = name; this.age = age; } var family = [] var people = {alice:40, bob:42, michelle:8, timmy:6}; for (var key

这不是给我钥匙。它为每个键提供“键”。 在数组中添加{key:value}对对象的正确方法是什么

更新 基于下面的K3N解决方案,我认为,如果我们每次都从构造函数声明,这是最有效的方法:

function Person (name, age) {
  this.name = name;
  this.age = age;
}

var family = []

var people = {alice:40, bob:42, michelle:8, timmy:6};


for (var key in people) {
  family.push({key:people[key]})
}

console.log(family);
keys=Object.keys(人);
对于(变量i=0;i
取消使用,以便可以将键视为变量属性名

keys = Object.keys(people);
for (var i = 0; i < keys.length; i++) {
  family.push(new Person(keys[i], people[keys[i]]));
}

取消使用,以便可以将键视为变量属性名

keys = Object.keys(people);
for (var i = 0; i < keys.length; i++) {
  family.push(new Person(keys[i], people[keys[i]]));
}


因为你的人名数组包含人名作为键,值是年龄(小心,好像你得到两个同名的人,时空中会发生核反应…!)

您可以这样做:

职能人员(姓名、年龄){
this.name=名称;
这个。年龄=年龄;
}
变量族=[]
var people={alice:40,bob:42,michelle:8,timmy:6};
var keys=Object.keys(人);//列出对象中的所有(ownProperty)键
对于(vari=0,key;key=keys[i];i++){//循环
family.push(新人(key,people[key]);//推
}

document.write(JSON.stringify(family));//演示输出
因为您的人物数组包含人名作为键,而值是年龄(小心,就像两个同名的人在时空中发生核反应一样…!)

您可以这样做:

职能人员(姓名、年龄){
this.name=名称;
这个。年龄=年龄;
}
变量族=[]
var people={alice:40,bob:42,michelle:8,timmy:6};
var keys=Object.keys(人);//列出对象中的所有(ownProperty)键
对于(vari=0,key;key=keys[i];i++){//循环
family.push(新人(key,people[key]);//推
}

document.write(JSON.stringify(family));//演示输出
如果有人拒绝投票,请指定原因,以便我可以添加您需要的任何信息注意,for in循环比普通for循环慢得多。@K3N谢谢,这将是进一步的优化。我会确定的。这个问题的答案是修复我没有得到的输出first@user2290820您使用的方法似乎更接近K3N,而不是我的方法,因为您没有使用平方表示法,而是将键作为参数传递给构造函数,所以我认为您不应该接受我的方法answer@Ankit我明白你的意思。我认为torex是对的。如果有人否决了投票,请说明原因,这样我就可以添加您需要的任何信息。注意,for in循环比正常的for循环慢得多。@K3N谢谢,这将是进一步的优化。我会确定的。这个问题的答案是修复我没有得到的输出first@user2290820您使用的方法似乎更接近K3N,而不是我的方法,因为您没有使用平方表示法,而是将键作为参数传递给构造函数,所以我认为您不应该接受我的方法answer@Ankit我明白你的意思。我想torex说对了,这是没有效率的。我看到每次迭代都会创建var,这样更好。所以你把钥匙放在括号里。为什么这样做有效?这是没有效率的。我看到每次迭代都会创建var,这样更好。所以你把钥匙放在括号里。为什么会这样?@torox它和另一个一样好。我先选了这个。另一个是优雅的。但是这些变化像是family.push(新人(key,people[key]);是后来做的。无论如何,我不想优化。@torox它和另一个一样好。我先选了这个。另一个是优雅的。但是这些变化像是family.push(新人(key,people[key]);是后来做的。无论如何,我并不想优化。
for (var key in people) {
  family.push({[key]:people[key]})
}