Мне был задан вопрос:
При наличии вложенного массива или массивов вернуть новый плоский массив со всеми элементами всех вложенных массивов в их первоначальном порядке
я пришел к ответу:
function flattenArray (arrayOfArrays) {
arrays = arrays.reduce(function(a, b){
return a.concat(b);
}, []);
console.log(merged);
Мой ответ проверяется на это;
describe("flattenArray", () => {
it("returns a flat array with all the elements of the nested arrays in their original order", () => {
let arrayOfArrays, expected;
arrayOfArrays = [[1, 2], [], [3], ["hello", true]];
expected = [1, 2, 3, "hello", true];
expect(flattenArray(arrayOfArrays)).to.eql(expected);
arrayOfArrays = [[1], [2], [[3, 4]]];
expected = [1, 2, [3, 4]];
expect(flattenArray(arrayOfArrays)).to.eql(expected);
});
it("does not mutate the passed array, i.e. returns a new array, leaving the original untouched", () => {
const original = [[1, 2], [], [3, 4]];
const flat = flattenArray(original);
expect(original).to.not.equal(flat);
expect(original).to.eql([[1, 2], [], [3, 4]]);
});
});
Понятия не имею, как еще попытаться решить этот вопрос, кто-нибудьесть предложения.