Создайте массив, используя forEach, который имеет все имена пользователей - PullRequest
0 голосов
/ 09 февраля 2019

Это массив, и я хочу использовать foreach для создания массива, используя forEach, который имеет все имена пользователей со знаком "!"каждому из имен пользователей

const array = [
 {
  username: "john",
  team: "red",
  score: 5,
  items: ["ball", "book", "pen"]
 },
 {
  username: "becky",
  team: "blue",
  score: 10,
  items: ["tape", "backpack", "pen"]
 },
{
  username: "susy",
  team: "red",
  score: 55,
  items: ["ball", "eraser", "pen"]
 },
 {
  username: "tyson",
  team: "green",
  score: 1,
  items: ["book", "pen"]
},

];

Что я пробую в JS:

const double=[];
const newArray = array.forEach(array[i].username)=>{
double.push(array[i].username+"!");
});
console.log(double);

Что я получил по ошибке:

Uncaught SyntaxError: Неожиданный токен.

Как правильно использовать foreach для доступа к объекту в массиве?

Ответы [ 2 ]

0 голосов
/ 09 февраля 2019

Использование карты и деструктурирования

const array = [{username: "john",team: "red",score: 5, items: ["ball", "book", "pen"]},{username: "becky",team:"blue",score: 10,items: ["tape", "backpack", "pen"]},{username: "susy",team: "red",score: 55,items: ["ball", "eraser", "pen"]},{username: "tyson",team: "green",score: 1,items: ["book", "pen"]},];

let op = array.map(({username})=>  username + '!')

console.log(op)

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

  1. Невозможно изменить значение переменной, если вы определите ее константой.
  2. const newArray = array.forEach.... forEach не возвращает значение, поэтому это назначение бесполезно.
  3. array.forEach(array[i].username)=>... это синтаксическая ошибка.Вы должны использовать его либо array.forEach((array[i].username)=>... или array.forEach(array[i].username => ....

Вы можете увидеть измененный код в приведенном ниже фрагменте кода.

const array = [{username: "john",team: "red",score: 5, items: ["ball", "book", "pen"]},{username: "becky",team:"blue",score: 10,items: ["tape", "backpack", "pen"]},{username: "susy",team: "red",score: 55,items: ["ball", "eraser", "pen"]},{username: "tyson",team: "green",score: 1,items: ["book", "pen"]},];

let double=[];
array.forEach(input=>{
double.push(input.username+"!");
});
console.log(double);
0 голосов
/ 09 февраля 2019

Вы можете сделать это с помощью forEach следующим образом (обратите внимание, что var не const, потому что вы не можете изменить const):

const array = [{
    username: "john",
    team: "red",
    score: 5,
    items: ["ball", "book", "pen"]
  },
  {
    username: "becky",
    team: "blue",
    score: 10,
    items: ["tape", "backpack", "pen"]
  },
  {
    username: "susy",
    team: "red",
    score: 55,
    items: ["ball", "eraser", "pen"]
  },
  {
    username: "tyson",
    team: "green",
    score: 1,
    items: ["book", "pen"]
  },
];

var double = [];
array.forEach(person => double.push(person.username + "!"));

console.log(double);

Однако использовать намного проще map:

const array = [{
    username: "john",
    team: "red",
    score: 5,
    items: ["ball", "book", "pen"]
  },
  {
    username: "becky",
    team: "blue",
    score: 10,
    items: ["tape", "backpack", "pen"]
  },
  {
    username: "susy",
    team: "red",
    score: 55,
    items: ["ball", "eraser", "pen"]
  },
  {
    username: "tyson",
    team: "green",
    score: 1,
    items: ["book", "pen"]
  },
];

var double = array.map(person => person.username + "!");

console.log(double);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...