#javascript #arrays #sorting #object
Вопрос:
Я застрял на этом вопросе более 6 часов. Я начал изучать JavaScript несколько месяцев назад, пока все хорошо, но не могу решить эту проблему.
const arrHeader["name","street","city","state","zip","phone","fax","custom"];
объект следующим образом
const obj = {
zip: "01001"
phone: "77894644"
city: "Albany",
state: NY,
name: "John",
street: "123 Main St"
custom: "best user"
fax: ""
};
Можно ли получить вывод в виде массива (не связанного массива/объекта), отсортированного на основе arrHeader? длина массива/объекта одинакова. Пожалуйста, обратите внимание, что для факса пусто, индекс в результате должен соответствовать arrHeader, даже если значение равно нулю. Чем ты. Любое предложение приветствуется.
Вывод должен выглядеть так для данного объекта. Не уверен, что «» лучше всего сохранить индекс таким же.
var result["John","123 Main St","Albany","NY","01001","77894644"," ","best user"];
Спасибо.
Ответ №1:
Если я правильно понимаю, похоже, что вы хотите выполнить операцию сопоставления с вашим массивом с .map()
помощью . Это позволит вам взять каждый элемент из arrHeader
и сопоставить его со значением из вашего obj
, используя элемент в качестве ключа obj[key]
:
const arrHeader = ["name","street","city","state","zip","phone","fax","custom"];
const obj = { zip: "01001", phone: "77894644", city: "Albany", state: "NY", name: "John", street: "123 Main St", custom: "best user", fax: "" };
const res = arrHeader.map(key => obj[key]);
console.log(res);
Ответ №2:
Пожалуйста, найдите Array.reduce
реализацию вашего требования.
const arrHeader = ["name","street","city","state","zip","phone","fax","custom"];
const obj = {
zip: "01001",
phone: "77894644",
city: "Albany",
state: "NY",
name: "John",
street: "123 Main St",
custom: "best user",
fax: ""
};
const result = arrHeader.reduce((acc, curr) => {
acc.push(obj[curr]);
return acc;
}, []);
console.log(result);
Array.map
реализация
const arrHeader = ["name","street","city","state","zip","phone","fax","custom"];
const obj = {
zip: "01001",
phone: "77894644",
city: "Albany",
state: "NY",
name: "John",
street: "123 Main St",
custom: "best user",
fax: ""
};
const result = arrHeader.map((node) => obj[node])
console.log(result);