2016-07-11 17 views
-1

Wenn ich das Standard-ObjektJavascript Standard-Objekt - Wie zwei Elemente zurückgeben?

var data = []; 

data["Name"] = ["Janet", "James", "Jean", "Joe", "John"]; 
data["Number"] = [25, 22, 37, 19, 40]; 

sagen, dass ich die minimale Anzahl Wert wollen ‚19‘

Wie kann ich zurückkehren und die mit der minimalen Anzahl Wert zugeordnet Namen angezeigt werden? Was ist mit dem Namen, der dem Maximalwert zugeordnet ist?

Grundsätzlich, wie kann ich zwei Elemente auf einmal zurückgeben und wie kann ich herausfinden, ob sie miteinander verbunden sind?

Ich habe versucht, indexOf(), aber Methoden funktionieren nicht ordnungsgemäß auf Standardobjekte. Ich bin ziemlich neu in Javascript.

EDITED: vergessen Sie die eckigen Klammern auf dem Array ...

+2

Viele Bugs in Ihrem Code –

+2

Ich denke, Sie vermissen einige '[...]' um Ihre Daten. –

+0

'var data = {}; Daten ["Name"] = ["Janet", "James", "Jean", "Joe", "John"]; data ["Number"] = [25, 22, 37, 19, 40]; ' –

Antwort

2

Verwenden Math.min.applysmallest Wert von array und Array#indexOf bekommen Index der smallest Zahl zu erhalten

var data = {}; //Initialize it as object 
 

 
data["Name"] = ["Janet", "James", "Jean", "Joe", "John"]; 
 
data["Number"] = [25, 22, 37, 19, 40]; 
 

 
var min = Math.min.apply(null, data["Number"]); 
 
console.log(min); 
 
console.log(data["Name"][data["Number"].indexOf(min)]); 
 
//-----------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^To get the index of smallest number

+0

'var data = {};' –

+0

@PranavCBalan - Yeah! Aktualisiert .. – Rayon

+0

@SpencerWieczorek - 'Assoziatives Array', aber weniger' lesbar' und _confusing_ – Rayon

0

Die alternative Lösung mit ES6 Array.prototype.find() Funktion:

// search for MAX number 
var idx = data["Number"].indexOf(Math.max.apply(null, data["Number"])), 
    nameWithMax = data["Name"].find((v, i) => i === idx); 
console.log(nameWithMax); // "John" 
Verwandte Themen