Как инициализировать идентификатор в выражении foreach в JavaScript? - PullRequest
0 голосов
/ 14 сентября 2018

Я хотел бы добавить максимальный идентификатор в объекты.Я мог бы создать идентификаторы в массиве.Однако мне нужно инициализировать первый идентификатор, например 136.

Вот мой массив

  <script>
  const source =  [
  {
   "group": "418",
   "role": "304" 
  },
  {
   "role": "304" 
   "group": "410"
   },
   {
   "role": "304" 
   "group": "420"
   }
];

  var ids = 135   
  source.forEach((item, i) => {
  item.id = i + 1;
  });

console.log(source);
</script>

Если я запустите этот скрипт, я могу получить результат следующим образом.

   [ {group: "418", role: "304", id: 1},
     {role: "304", group: "410", id: 2},
     {role: "304", group: "420", id: 3}]

Я хотел бы получить идентификатор из максимального идентификатора + 1 Я получаю максимальное значение из javascript уже как 135

Как инициализировать идентификатор в выражении foreach?

Это именно то, что я хочу.

   [ {group: "418", role: "304", id: 136},
    {role: "304", group: "410", id: 137},
    {role: "304", group: "420", id: 138}]

Большое спасибо

Ответы [ 4 ]

0 голосов
/ 14 сентября 2018
  const startId = 135;
  const newSource = source.map((element, i) => {
      return Object.assign({}, element, {
          id: startId + i
      })
      })
  console.log(newSource)
0 голосов
/ 14 сентября 2018

просто добавьте ваше смещение (вашу переменную id).

const source =  [
  {
   "group": "418",
   "role": "304" 
  },
  {
   "role": "304",
   "group": "410"
   },
   {
   "role": "304", 
   "group": "420"
   }
];

  var ids = 135   
  source.forEach((item, i) => {
  item.id = i + ids + 1;
  });

console.log(source);
0 голосов
/ 14 сентября 2018

Если вы хотите создать новый массив, вы можете использовать метод map с замыканием.

 const source = [{"group":"418","role":"304"},{"role":"304","group":"410"},{"role":"304","group":"420"}]

const result = (max => source.map(o => ({...o, id: ++max})))(135)
console.log(result)
0 голосов
/ 14 сентября 2018

Вы можете увеличивать идентификатор с каждой петлей

const source =  [{
  group: "418",
  role: "304" 
},
{
  role: "304",
  group: "410"
},
{
  role: "304",
  group: "420"
}];

var ids = 135   
source.forEach((item, i) => {
  item.id = ids++;
});

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