Size: a a a

JavaScript — русскоговорящее сообщество

2020 July 05

J

Jasur in JavaScript — русскоговорящее сообщество
const onChange1 = () => {
   const gradientColors1 = []
   let letters = '0123456789ABCDEF'
   let base = '#'
   for (let i = 0; i < 6; i++) {
     base = base + letters[Math.floor(Math.random() * 16)]
   }
   for (let i = 0; i < 3; i++) {
     gradientColors1.push(base)
   }
   setColorList1(gradientColors)
 }
Всем привет. У меня такая функция. И у меня точно также есть 3 таких функции только меняются цифры. Вот эти цифры меняются:
onChange1 -> onChange2 -> onChange3
setColorList1 -> setColorList2 ->  setColorList3
gradientColors1 ->  gradientColors2 -> gradientColors3

Как можно их упростить? У меня сейчас дупликации очень много хочу убрать эти дубликации
источник

t

th.witness in JavaScript — русскоговорящее сообщество
Jasur
const onChange1 = () => {
   const gradientColors1 = []
   let letters = '0123456789ABCDEF'
   let base = '#'
   for (let i = 0; i < 6; i++) {
     base = base + letters[Math.floor(Math.random() * 16)]
   }
   for (let i = 0; i < 3; i++) {
     gradientColors1.push(base)
   }
   setColorList1(gradientColors)
 }
Всем привет. У меня такая функция. И у меня точно также есть 3 таких функции только меняются цифры. Вот эти цифры меняются:
onChange1 -> onChange2 -> onChange3
setColorList1 -> setColorList2 ->  setColorList3
gradientColors1 ->  gradientColors2 -> gradientColors3

Как можно их упростить? У меня сейчас дупликации очень много хочу убрать эти дубликации
В чëм разница между этими функциями?
источник

J

Jasur in JavaScript — русскоговорящее сообщество
th.witness
В чëм разница между этими функциями?
Только цифра. Логика такая же
источник

J

Jasur in JavaScript — русскоговорящее сообщество
onChange1 -> onChange2 -> onChange3
setColorList1 -> setColorList2 ->  setColorList3
gradientColors1 ->  gradientColors2 -> gradientColors3
источник

jc

john conor  in JavaScript — русскоговорящее сообщество
не может обьяснить
источник

t

th.witness in JavaScript — русскоговорящее сообщество
Jasur
Только цифра. Логика такая же
Используй только одну из этих функций.
источник

J

Jasur in JavaScript — русскоговорящее сообщество
john conor 
не может обьяснить
точно
источник

J

Jasur in JavaScript — русскоговорящее сообщество
th.witness
Используй только одну из этих функций.
Спасибо  понял
источник

J

Jasur in JavaScript — русскоговорящее сообщество
const onChange = () => {
     const gradientColors = []
     let letters = '0123456789ABCDEF'
     let base = '#'
     for (let i = 0; i < 6; i++) {
     base = base + letters[Math.floor(Math.random() * 16)]
     }
     console.log(base)
     // #F771DA
 }


Вопрос когда вызываю функцию он генерирует color. Но только одну. Хочу чтобы три уникальных цвета сгенерировал как это делать ?
источник

t

th.witness in JavaScript — русскоговорящее сообщество
Jasur
const onChange = () => {
     const gradientColors = []
     let letters = '0123456789ABCDEF'
     let base = '#'
     for (let i = 0; i < 6; i++) {
     base = base + letters[Math.floor(Math.random() * 16)]
     }
     console.log(base)
     // #F771DA
 }


Вопрос когда вызываю функцию он генерирует color. Но только одну. Хочу чтобы три уникальных цвета сгенерировал как это делать ?
Принимать параметром количество цветов (допустим, n-ое кол-во) и циклично создавать n цветов.
источник

t

th.witness in JavaScript — русскоговорящее сообщество
Или рекурсия (зочем, не надо...) 🙃
источник

J

Jasur in JavaScript — русскоговорящее сообщество
th.witness
Принимать параметром количество цветов (допустим, n-ое кол-во) и циклично создавать n цветов.
Можешь этим методом написать ?
источник

t

th.witness in JavaScript — русскоговорящее сообщество
Jasur
const onChange = () => {
     const gradientColors = []
     let letters = '0123456789ABCDEF'
     let base = '#'
     for (let i = 0; i < 6; i++) {
     base = base + letters[Math.floor(Math.random() * 16)]
     }
     console.log(base)
     // #F771DA
 }


Вопрос когда вызываю функцию он генерирует color. Но только одну. Хочу чтобы три уникальных цвета сгенерировал как это делать ?
const onChange = n => {
  const gradientColors = new Array()
  const letters = "0123456789ABCDF";
  for(let i = 0; i < n; i++) {
     let base = new String();
     // Сюда твои махинейшоны с base, циклом и матх.(флур|рандом)
    gradientColors.push(base);
  }
  return gradientColors
}
источник

J

Jasur in JavaScript — русскоговорящее сообщество
th.witness
const onChange = n => {
  const gradientColors = new Array()
  const letters = "0123456789ABCDF";
  for(let i = 0; i < n; i++) {
     let base = new String();
     // Сюда твои махинейшоны с base, циклом и матх.(флур|рандом)
    gradientColors.push(base);
  }
  return gradientColors
}
источник

t

th.witness in JavaScript — русскоговорящее сообщество
А теперь подумай, что ты сделал не так (:
источник

t

th.witness in JavaScript — русскоговорящее сообщество
Таки, не понял, почему первые три — нулл.
источник

t

th.witness in JavaScript — русскоговорящее сообщество
Ой, я немного глупый.
источник

t

th.witness in JavaScript — русскоговорящее сообщество
new Array(n); => new Array();
источник

t

th.witness in JavaScript — русскоговорящее сообщество
Или gradientColors.push(base); => gradientColors[i] = base;
источник

t

th.witness in JavaScript — русскоговорящее сообщество
У элементов длина 1, потому что в base ты суëшь только 1 символ. Тебе нужно класть символы в base циклично, как у тебя и было в начале.
источник