Преобразовать строку в целое число внутри массива в JavaScript - PullRequest
0 голосов
/ 15 января 2019

У меня есть массив, который показан из console.log (temp) так:

temp = [{name: "Request A", data: "1"}
       {name: "Request B", data: "12"}
       {name: "Request C", data: "6"}]

Как предполагается, если я хочу изменить формат моего массива, сделайте так:

 temp: [{name: "Request A", data: [1]}
       {name: "Request B", data: [12]}
       {name: "Request C", data: [6]}]

Пожалуйста, помогите, ребята ... спасибо,

Ответы [ 7 ]

0 голосов
/ 15 января 2019

Попробуйте это - Я использую Array.of для создания массива. + оператор для разбора строки в массив.

temp.map(t => (t.data = Array.of(+t.data), t));
0 голосов
/ 15 января 2019

Вот один из способов сделать это. Это из узла REPL.

> var temp = [{name: "Request A", data: "1"}, {name: "Request B", data: "12"}, {name: "Request C", data: "6"}];
undefined
> temp.forEach(function(e) {
..... e.data = [parseInt(e.data, 10)];
..... });
undefined
> temp
[ { name: 'Request A', data: [ 1 ] },
  { name: 'Request B', data: [ 12 ] },
  { name: 'Request C', data: [ 6 ] } ]
>
0 голосов
/ 15 января 2019

Попробуйте

temp.forEach(x=> x.data=[+x.data]);

let temp = [{name: "Request A", data: "1"},
       {name: "Request B", data: "12"},
       {name: "Request C", data: "6"}];
       
       
temp.forEach(x=> x.data=[+x.data]);

console.log(JSON.stringify(temp));
0 голосов
/ 15 января 2019

Попробуйте это,

temp = [{name: "Request A", data: "1"},
       {name: "Request B", data: "12"},
       {name: "Request C", data: "6"}];


  let temp1 = temp.map(item => {
    item.data = [parseInt(item.data)]
    return item;
  })

  console.log(temp1);

ВЫВОД:

[ { "name": "Request A", "data": [ 1 ] }, { "name": "Request B", "data": [ 12 ] }, { "name": "Request C", "data": [ 6 ] } ]
0 голосов
/ 15 января 2019

Вы можете сделать это, используя map

let temp =  [{name: "Request A", data: "1"},{name: "Request B", data: "12"},{name: "Request C", data: "6"}]

let op = temp.map(e=> {
  return {
    ...e,
    data : [+e.data]
  }
})

console.log(op)
0 голосов
/ 15 января 2019

Чтобы изменить массив на месте, вы можете просмотреть элементы для forEach и просто изменить свойство:

let temp = [ {name: "Request A", data: "1"},
             {name: "Request B", data: "12"},
             {name: "Request C", data: "6"}]

temp.forEach(item => item.data = [+(item.data)])
console.log(temp)
0 голосов
/ 15 января 2019

Используйте функцию map, которая будет возвращать новый массив, и parseInt, чтобы преобразовать строку в число

let temp = [{
    name: "Request A",
    data: "1"
  },
  {
    name: "Request B",
    data: "12"
  },
  {
    name: "Request C",
    data: "6"
  }
]
let newTemp = temp.map((item) => {
  return {

    name: item.name,
    data: [parseInt(item.data, 10)]
  }


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