В настоящее время я создаю такой массив:
[c%256,2*c%256,3*c%256,4*c%256]
Мне нужно умножить переменную c на текущую позицию в массиве +1, а затем по модулю 256.
Есть ли лучший / меньший способ сделать это. Что-то с ES6?
Скажем, я хочу это с длиной массива 20?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Это то, что тебе надо?
const c = 32;
const result = Array(20).fill().map((x,i) => (c * i+1) % 256);
console.dir(result);Вы можете сделать это без ES6:
function createArray(variable, length) {
var arr = [];
for(var i = 0; i < length; i++) {
arr.push((i+1) * variable % 256);
}
return arr;
}
Вы может делаете это без es6, но вопрос действительно требует чего-то лучшего / меньшего
что-то лучше / меньше чего? Вопрос непонятен по этому поводу и не приводит пример. Формулировка вопроса предполагает, что спрашивающий вообще не знает, как это делать.
Думаю, я иначе истолковал вопрос; у пользователя уже есть способ создания массива а, они спрашивают: «Есть ли способ лучше / меньше. Что-нибудь с ES6?»
Затем он должен был опубликовать свой код, который следует оптимизировать.
Был предоставлен код: [c%256,2*c%256,3*c%256,4*c%256]
Да, и вопрос был Is there a better / smaller way to do that. Something with ES6?.. Это не говорит о том, что решение обязательно должно использовать ES6. Я ответил на вопрос, есть ли способ лучше, и сказал, что ему для этого не нужен ES6.
var c = 5;
var arr = Array.apply(null, Array(20))
var output = arr.map( (v,i) => (c*(i+1)%256) )
console.info(output)
// single line
var c = 8
console.info(Array.apply(null, Array(20)).map( (v,i) => (c*(i+1)%256) ))Это использует карту ES6. Он избегает объявления цикла или массива. Массив с самого начала выделяется правильного размера (без изменения размера).
//[c%256,2*c%256,3*c%256,4*c%256]
const c = 12
const count = 100
const items = Array(count).fill().map((_, i) => ((i + 1) * c) % 256)
console.info(items)const createArray = (length, c) => {
return [...Array(length).keys()].map(i => (i + 1) * c % 256)
}
Подумал об этом. Но нет, мне сначала нужно вычислить c * n, а затем% 256