let a = {
lentgh: 2,
0: false,
1: {
lentgh: 3,
0: false,
1: false,
2: {
lentgh: 2,
0: false,
1: false
}
}
}
На выходе должны получить: false, false, false, false, false
Заменил false на строки, чтобы было понятно, что всё работает.
function process(obj) {
if (typeof obj !== 'object') return [obj]; // крайний случай, не объект
let res = [];
for (let i=0; i<obj.lentgh; ++i) {
// рекурсивно собираем скаляры в массив
res = res.concat(process(obj[i]));
}
return res;
}
let a = {
lentgh: 2,
0: '0',
1: {
lentgh: 3,
0: '1.0',
1: '1.1',
2: {
lentgh: 2,
0: '1.2.0',
1: '1.2.1'
}
}
};
console.log(process(a))
Если починить свойство length, можно прозрачно преобразовывать объект в массив:
function process(obj) {
if (typeof obj !== 'object') return obj; // крайний случай, не объект
return Array.from(obj)
.reduce((c, item) =>
c.concat(process(item)), []);
}
let a = {
length: 2,
0: '0',
1: {
length: 3,
0: '1.0',
1: '1.1',
2: {
length: 2,
0: '1.2.0',
1: '1.2.1'
}
}
};
console.log(process(a))
let a = {
lentgh: 2,
0: false,
1: {
lentgh: 3,
0: false,
1: false,
}
}, parseData = (object, parsed = []) => {
Object.keys(object).forEach(e => {
if (!isNaN(+e)) {
if (typeof object[e] === "object")
return parseData(object[e], parsed);
parsed.push(object[e]);
}
});
return parsed;
}
console.log(parseData(a));
Виртуальный выделенный сервер (VDS) становится отличным выбором
Моя задача состоит в том, чтобы меню запоминало текущее состояние, когда открыт целый "аккордеон" и при переходе по ссылке на определенный...
Есть форма, в которую нужно вводить номер банковской карты
Помогите, пожалуйста, изменить цвет SVG и сделать так, что бы на hover цвет менялсяCss изменить не получается, или это только прописать на JS возможно?...
Есть база данных в postgresql и 10 таблиц, теперь необходимо добавить еще пару таблиц, в файле migrationjs