Преобразование объекта в число (массив) - PullRequest
0 голосов
/ 18 мая 2018
var hasil = [ T1:"56", T2:"90", T3:"20"] 

Я хочу, чтобы этот массив был таким [56, 90, 20], чтобы я мог использовать арифметический оператор, например 56+90+20.

Кто-нибудь может мне помочь?

Ответы [ 4 ]

0 голосов
/ 18 мая 2018

Вы можете использовать Object.values для преобразования объекта в массив, map и передать Number в качестве функции обратного вызова

let hasil = {T1:"56", T2:"90", T3:"20"}
let result = Object.values(hasil).map(Number);

console.log(result);
0 голосов
/ 18 мая 2018

Используйте Object.values() для преобразования в массив строк (["56", "90", "20"]) и Array.reduce() для суммирования массива.Поскольку это массив строк, вам необходимо преобразовать каждый элемент в число с помощью оператора унарный плюс :

const hasil = { T1:"56", T2:"90", T3:"20" }
const result = Object.values(hasil)
  .reduce((s, n) => +s + +n)

console.log(result)
0 голосов
/ 18 мая 2018

Предполагая, что hasil является объектом, а не массивом, следующий код даст вам массив значений:

var hasil = {T1:"56", T2:"90", T3:"20"}

let result = Object.values(hasil).map((value) => Number(value));

console.log(result)

Редактировать

В соответствии с предложением @Ori Drori, мы можем использовать следующие сокращения для преобразования строки в число с картой, чтобы получить аналогичныерезультат:

var hasil = {T1:"56", T2:"90", T3:"20"}

let result = Object.values(hasil).map(Number);

console.log(result)
0 голосов
/ 18 мая 2018

Полагаю, вы имеете в виду var hasil = { T1:"56", T2:"90", T3:"20" }, Объект.Object.values(hasil) получит то, что вы хотите.

...