как можно получить новый массив состоящий из name например["dima", "Anna", "Denis"], и отдельный массив из lang ["javascript", "php", "html", "css", "python", "ruby"], пробовал через reduce Но видимо делаю гдето ошибку из за которой не выходит
function ready() {
var employee = [
{
name: "Dima",
lang: ["javascript", "php"],
age: 21
},
{
name: "Anna",
lang: ["html", "css"],
age: 26
},
{
name: "Denis",
lang: ["python", "ruby"],
age: 18
}
];
}
document.addEventListener("DOMContentLoaded", ready);
Первый способ - по новее.
var employee = [{
name: "Dima",
lang: ["javascript", "php"],
age: 21
},
{
name: "Anna",
lang: ["html", "css"],
age: 26
},
{
name: "Denis",
lang: ["python", "ruby"],
age: 18
}
];
var names = employee.filter(m => m.age > 19).map(m => m.name);
console.log(names);
var langs = employee.reduce((res, m) => res.concat(m.lang), []);
console.log(langs);
Второй способ - олдскульный.
var employee = [{
name: "Dima",
lang: ["javascript", "php"],
age: 21
},
{
name: "Anna",
lang: ["html", "css"],
age: 26
},
{
name: "Denis",
lang: ["python", "ruby"],
age: 18
}
];
var names = [];
var langs = [];
for (var i = 0; i < employee.length; i++) {
var empl = employee[i];
empl.age > 19 && names.push(empl.name);
langs = langs.concat(empl.lang);
}
console.log(names);
console.log(langs);
Сборка персонального компьютера от Artline: умный выбор для современных пользователей