Из массива 0 и 1, получаю массив чисел (числа равны количеству 0 и 1).
Не могу понять, как получить обратно массивы 0 и 1?
var arr = [0,0,0,0,1,1,1,0,0,0,0];
var countZero = 0;
var mode = 0;
var arr1 = [];
for(var i = 0; i < arr.length; i++) {
if (mode === arr[i]) {
countZero++
}
if(mode != arr[i]) {
arr1.push(countZero);
countZero = 1;
mode = arr[i];
}
}
arr1.push(countZero);
console.log(arr1);
var arr = [0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0];
var countZero = 0;
var mode = 0;
var arr1 = [];
for (var i = 0; i < arr.length; i++) {
if (mode === arr[i]) {
countZero++
}
if (mode != arr[i]) {
arr1.push(countZero);
countZero = 1;
mode = arr[i];
}
}
arr1.push(countZero);
// преобразуем в оригинальный массив
var bits = [];
for (var i = 0, currentBit = 0; i < arr1.length; i++) {
for (var count = 0; count < arr1[i]; count++) {
bits.push(currentBit);
}
currentBit = +!currentBit;
}
console.log(String(arr));
console.log(String(arr1));
console.log(String(bits));
Вот так можно без особых костылей и лишних циклов сделать все в одну строчку.
let arr = [3, 4, 3];
newArr = arr.reduce((accumulator, currentValue, index) => accumulator.concat(Array(currentValue).fill(index % 2 ? 1 : 0)), []);
console.log(newArr);
Есть очень большой двумерный массив - игровая картаЕсть маленький двумерный массив - текущая, видимая часть игровой карты
Имеется несколько input'ов с одинаковым классом Как узнать какой инпут по счету сейчас активен?