Как проверить, содержит ли массив массивы? (Шутка) - PullRequest
0 голосов
/ 17 мая 2019

Учитывая следующую функцию:

chunk = (arr, n) => {
    return arr.reduce(function(p, cur, i) {
        (p[i/n|0] = p[i/n|0] || []).push(cur);
        return p;
    }, []);
}

Я хочу проверить, содержит ли выходной массив массивы:

test("Splits a given array in N arrays", () => {
    let _input = Array.from({length: 999}, () => Math.floor(Math.random() * 999));;
    let int = mockService.getRandomArbitrary();
    expect(generalService.chunk(_input, int)).toContain(???????);
})

Учитывая совпадений , как можно проверитьесли массив содержит массивы?

Ответы [ 2 ]

1 голос
/ 17 мая 2019

Возможно как то так?

Мы используем Array.isArray() ( документы здесь) для проверки каждого элемента

let output = generalService.chunk(_input, int));
let containArrays = true;
if (output.length) {
    output.forEach(element => {
        // containArrays is false if one of the element is *not* an array
        if (Array.isArray(element) === false) containArrays = false;
    });
}
// if output is an empty array it doesn't contain arrays
else containArrays = false;

expect(containArrays).toBeTruthy();
0 голосов
/ 17 мая 2019

Если вы используете Лодаш , это очень просто

_.any(arr,function(a){
    return Array.isArray(a);
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...