web-dev-qa-db-fra.com

Comment puis-je analyser une chaîne en nombre pendant la déstructuration?

J'essaie d'expérimenter la déstructivation. Maintenant, j'ai une affaire que j'essaye de faire face à la déstructuration.

Par exemple, j'ai une contribution comme celle-ci:

let input = {latitude: "17.0009", longitude: "82.2108"}

latitude et longitude _ valeurs clés sont des chaînes, mais je veux les analyser dans un nombre pendant la déstructuration.

let input = {latitude: "17.0009", longitude: "82.2108"}
let {latitude,longitude} = input

console.log(typeof latitude,typeof longitude)

Je peux voir dans ( Babel Repl que cela prend une référence d'un objet, puis accédez à chaque touche. Donc, le code ci-dessus est le même que:

"use strict";

 var arr = {
   latitude: "17.0009",
   longitude: "82.2108"
  };
 var latitude = arr.latitude,
     longitude = arr.longitude;

Je veux faire quelque chose comme utiliser la syntaxe déstructurée elle-même.

"use strict";

var arr = {
  latitude: "17.0009",
  longitude: "82.2108"
};
var latitude = Number(arr.latitude),
    longitude = Number(arr.longitude);

Je suis ouvert pour voir des hacks aussi.

Mise à jour

Je suis capable de venir avec un hack avec le , Opérateur:

let arr = {latitude: "17.0009", longitude: "82.2108"}

let {lat,lng} = ({latitude,longitude} = arr, ({lat:+latitude,lng:+longitude}))

console.log(typeof lat, typeof lng)

sur le côté Note: - Vous devez lire Réponse de Moritz Roessler C'est un hacky mais contient Bonnes connaissances et informations

28
Code Maniac

Si cela ne vous dérange pas d'utiliser lodash, vous pouvez essayer ceci:

import { mapValues } from 'lodash';

const input = {latitude: "17.0009", longitude: "82.2108"}
const {latitude, longitude} = mapValues(input, Number);
0
calvin