我有一个物体。我希望能够动态创建一个数组,然后创建另一个对象,该对象包含与我创建的数组中的属性相对应的键-值对。
例如,如果我有以下对象...
var churchMembers = {
John: 'fsiolfjdklsjds@yahoo.com',
Betty: 'fowifj@hotmail.com',
Christopher: 'fsis@yahoo.com',
James: 'wfowji@gmail.com',
Deep: 'abab@msn.com'
};并且我创建了以下数组:
var peopleComing = ['John', 'Christopher', 'James'];我希望得到以下响应
var peopleList = {
John: 'fsiolfjdklsjds@yahoo.com',
Christopher: 'fsis@yahoo.com',
James: 'wfowji@gmail.com'
};现在,我正在尝试使用for循环,而我所做的只是遍历对象属性,这并没有给我任何东西。使用Object.keys路线似乎适得其反,尽管这很容易让我过滤出正确的名称。谢谢。亚太区
发布于 2016-12-08 12:07:15
您可以使用Array#forEach迭代您的姓名列表,获得每个姓名的电子邮件并将其添加到您的peopleList中。
var peopleList = {};
peopleComing.forEach(function(name){
peopleList[name] = churchMembers[name];
});发布于 2016-12-08 12:08:49
忽略你代码中的拼写错误,下面的代码应该能够用你想要的东西初始化peopleList。
var churchMembers = {
John: "fsiolfjdklsjds@yahoo.com"
Betty: "fowifj@hotmail.com",
Christopher: "fsis@yahoo.com",
James: "wfowji@gmail.com",
Deep: "abab@msn.com"
},
peopleComing = ["John", "Christopher", "James"],
peopleList = {};
for (var i = 0, j = peopleComing.length; i < j; i++) {
peopleList[peopleComing[i]] = churchMembers[peopleComing[i]];
}https://stackoverflow.com/questions/41031550
复制相似问题