Есть ли аналог string.split() для array?

309
17 февраля 2017, 04:21

Хотелось бы такую функцию, написать сам пока не могу, не могу придумать как делить именно массив по позициям.
Она должна работать примерно так arraySplit(array, el => return el ? true : false);
И из массива элементов

[item, item, item, NOPE, item, item, NOPE, item, item]

Делать

[[item,item,item], [item,item,item], [item, item]]

Решение от DreamChild

export function arraySplit(el, separator) {
const items = Array.from(document.querySelectorAll(el));
let tmp = [];
if (!items) {
    return tmp;
}
let res = [tmp];
for (let item of items) {
    if (!separator(item)) {
        tmp.push(item);
    } else {
        tmp = [];
        res.push(tmp);
    }
}
return res;
}
Answer 1

Попробуйте так:

function split(arr, delimiter) {       
    var tmp = [];
    if(!arr)
      return tmp;
    var res = [tmp];
    for(var i = 0; i < arr.length; i++) {
        if(arr[i] !== delimiter)
            tmp.push(arr[i]); 
        else {
            tmp = [];
            res.push(tmp);
        }
    }  
   return res;
}
READ ALSO
Почему идет ошибка like.addEventListener is not a function?

Почему идет ошибка like.addEventListener is not a function?

Есть такой код и он работает:

1105
Получение ответа от сервера?

Получение ответа от сервера?

При клике на кнопку происходит загрузка файла на сервер в ответ я получаю

322
Асинхронная анимация jQuery

Асинхронная анимация jQuery

Как мне сделать animate и show асинхронными (Чтобы выполнялись одновременно) ? Пробовал делать так, но не работает

409