Я не знаю, как передать каждое значение данных из переменной в значение из другой переменной

#javascript #arrays

Вопрос:

 const people = [{  name: 'frank',  age: 20,  position: 'front-end-developer',  value: 7  },  {  name: 'craig',  age: 27,  position: 'back-end-developer',  value: 7  },  {  name: 'peter',  age: 23,  position: 'database-manager',  value: 6  },  {  name: 'andy',  age: 29,  position: 'full-stack-developer',  value: 9  } ];  const salaryGenerator = (person) =gt; {  return '


Я хочу дать имени пользователя бессмысленное слово в конце, которое находится внутри randomWord . Я бы хотел, чтобы это было похоже frank440donec и username в конце каждому давалось другое бессмысленное слово, но это дает всем именам другое бессмысленное слово, за исключением двух, которым присвоено одно и то же бессмысленное слово.

Комментарии:

1. Ну, у вас есть только четыре случайных слова, так что вероятность выбора каждого слова при каждом вызове обратного вызова составляет 25%.

2. Когда вы получите случайное число, вы можете удалить эту работу из randomWord массива, тогда вы получите уникальный элемент из этого массива, но у вас должно быть достаточно элементов в randomWord массиве

Ответ №1:

Если цель состоит в том, чтобы случайным образом назначить-избегая дубликатов-из набора имен, то хорошим решением будет перетасовать имена...

 // names must be at least the length of the people array const names = ['donec', 'pellentesque', 'facilisis', 'potenti']; shuffle(names);  const userNameGenerator = (person, index) =gt; {  const randomWord = names[index];  const ageXValue = person.age*person.value 300;  return `${person.name}${ageXValue}${randomWord}`; }  // shuffle based on https://stackoverflow.com/a/12646864/294949 function shuffle(array) {  for (let i = array.length - 1; i gt; 0; i--) {  const j = Math.floor(Math.random() * (i   1));  const temp = array[i];  array[i] = array[j];  array[j] = temp;  } }  const people = [{  name: 'frank',  age: 20,  position: 'front-end-developer',  value: 7  },  {  name: 'craig',  age: 27,  position: 'back-end-developer',  value: 7  },  {  name: 'peter',  age: 23,  position: 'database-manager',  value: 6  },  {  name: 'andy',  age: 29,  position: 'full-stack-developer',  value: 9  } ];  console.log(people.map(userNameGenerator)) 

Комментарии:

1. "большое вам спасибо"

(person.value * 10 / 5 * 15 200) }; const sentenceGenerator = (person) =gt; { return person.name ' is ' person.age ' who works as a ' person.position } const userNameGenerator = (person, ) =gt; { const randomWord = ['donec', 'pellentesque', 'facilisis', 'potenti'] return person.name (person.age * person.value 300) randomWord[Math.floor(Math.random() * randomWord.length)] } const salary = people.map(salaryGenerator) const sentence = people.map(sentenceGenerator) const userName = people.map(userNameGenerator) console.log(salary) console.log(sentence); console.log(userName);

Я хочу дать имени пользователя бессмысленное слово в конце, которое находится внутри randomWord . Я бы хотел, чтобы это было похоже frank440donec и username в конце каждому давалось другое бессмысленное слово, но это дает всем именам другое бессмысленное слово, за исключением двух, которым присвоено одно и то же бессмысленное слово.

Комментарии:

1. Ну, у вас есть только четыре случайных слова, так что вероятность выбора каждого слова при каждом вызове обратного вызова составляет 25%.

2. Когда вы получите случайное число, вы можете удалить эту работу из randomWord массива, тогда вы получите уникальный элемент из этого массива, но у вас должно быть достаточно элементов в randomWord массиве

Ответ №1:

Если цель состоит в том, чтобы случайным образом назначить-избегая дубликатов-из набора имен, то хорошим решением будет перетасовать имена…


Комментарии:

1. «большое вам спасибо»