这是问题......
创建一个名为keyAccessor的函数。 keyAccessor应该接受两个 参数:一组人和一个对象。每个人的名字都是 也是对象上的属性。 keyAccessor应循环遍历 名称数组,并访问每个名称的相应值 对象,将值推送到空数组中。 keyAccessor应该 返回新数组。
可以在
中传递的示例名称集var names = ["Dan", "Todd", "Andrew", "Doug"]
可以在
中传递的示例对象var people = {
Dan: { city: "Las Vegas", age: 24 },
Todd: { city: "France", age: 28 },
Andrew: { city: "Portland", age: 12 },
Doug: { city: "New New York", age: 56 },
}
将返回的新数组示例
var sampleOutput = [
{ city: "Las Vegas", age: 24 },
{ city: "France", age: 28 },
{ city: "Portland", age: 12 },
{ city: "New New York", age: 56 }
]
这是我有多远。
function keyAccessor(arr, obj){
var newArr = []
console.log(obj)
console.log(arr)
for(let i=0;i<arr.length;i++){
if(arr[i]=obj.name){
return newArr.push(obj)
}
}
return newArr
}
答案 0 :(得分:3)
由于这个问题非常简单,您可能不需要独立的功能
使用map
就足够了。
const names = ["Todd", "Dan", "Andrew", "Doug"];
const people = {
Dan: { city: "Las Vegas", age: 24 },
Todd: { city: "France", age: 28 },
Andrew: { city: "Portland", age: 12 },
Doug: { city: "New New York", age: 56 },
};
function keyAccessor(names, people) {
return names.map(name => people[name]);
}
console.log(keyAccessor(names, people));
以上代码:
let result = [];
for(let index in names) { // in this case, index will be 1, 2, 3, 4
let name = names[index];
result.push(people[name]);
}
names.map(name => people[name]);
是names.map(name => { return (people[name]); });
的简写
由于该名称是人物对象的关键,因此people.Dan
和people['Dan']
将返回相同的结果。