Мне был задан массив и объект, и я создаю функцию, которая возвращает новый объект, чьими свойствами являются объекты в заданном объекте AND, чьи ключи присутствуют в данном массиве. Если ключи присутствуют в данном массиве, но не находятся в данном объекте, они должны игнорировать их. Он не изменяет переданный объект.
До сих пор я получил это:
function select(arr, obj) {
var myObj = {};
for(var i = 0; i <= arr.length; i++){
arr[i] = obj[];
}
}
var arr = ['a', 'c', 'e'];
var obj = {
a: 1,
b: 2,
c: 3,
d: 4
};
var output = select(arr, obj);
console.log(output); // --> IT MUST RETURN { a: 1, c: 3 }
Любая идея, что я делаю неправильно?
У вас было это, почти,
in
операторе), а затем
function select(arr, obj) {
var myObj = {};
for (var i = 0; i < arr.length; i++) {
if (arr[i] in obj) {
myObj[arr[i]] = obj[arr[i]];
}
}
return myObj;
}
var arr = ['a', 'c', 'e'],
obj = { a: 1, b: 2, c: 3, d: 4 },
output = select(arr, obj);
console.log(output); // { a: 1, c: 3 }
Здесь ES6 один вкладыш;)
var arr = ['a', 'c', 'e'];
var obj = {
a: 1,
b: 2,
c: 3,
d: 4
};
var r = Object.keys(obj).reduce((o, v) => {return (arr.some(a => {return a===v;}) && (o[v] = obj[v]), o)}, {});
console.log(r);