2016-08-10 2 views
1

kann mir jemand wissen, wie man Wert von "ID", die 6 von folgenden Array-Objekt in jQuery/Javascipt ist.Wie erhalten Wert von Array-Objekt in jQuery

[Object {name="mode", value="Add"}, 
Object {name="test", value="abc"}, 
Object {name="ID", value="6"}] 
+0

Diese ist kein gültiges Javascript-Array. –

+0

ich habe [{"name": "mode", "value": "Hinzufügen"}, {"name": "test", "value": "abc"}, {"name": "ID", " Wert ":" 6 "}], aber es ist in Form von String Ich habe es gerade von jQuery.parseJSON analysieren und ich habe über Formate, aber ich brauche Wert der ID, die dynamisch ist. – bhavika

+0

Danke alle ich habe Lösung :) – bhavika

Antwort

0

Sie können die Array-Schleife und die Suche nach ID in den Objekten.

// your object 
 
var arr = [ 
 
    {name: "mode", value: "Add"}, 
 
    {name: "test", value: "abc"}, 
 
    {name: "ID", value: "6"} 
 
]; 
 

 
// the default value, whenever 'ID' is not found 
 
var value = null; 
 

 
// loop the array and search 
 
for(var i = 0; i < arr.length; i++) { 
 
    if(arr[i].name === "ID") { 
 
     value = arr[i].value; 
 
    } 
 
} 
 

 
// your result :) 
 
console.log(value);

0

Sie müssen sich durch das Array durchlaufen und ein Objekt mit einem erforderlichen name zu finden.
Der einfachste Weg, dies zu tun ist, Array.prototype.filter zu verwenden - Sie können ein Array ausfiltern und nur dieses Objekt mit name gleich ID (vorausgesetzt, dass es immer genau ein solches Objekt gibt) und dann seinen Wert zurückgeben.

var arr = [{ "name": "mode", "value": "Add" }, { "name": "test", "value": "abc" }, { "name": "ID", "value": "6" }]; 
 

 
// pre-ES6 syntax 
 
var id = arr.filter(function(x) { return x.name === 'ID'; })[0].value; 
 
console.log(id); 
 

 
// ES6 syntax 
 
var id = arr.filter(x => x.name === 'ID')[0].value; 
 
console.log(id);

Dieser Code nicht abgeschlossen ist, möchten Sie vielleicht für filter Ergebnislänge prüfen oder eine universelle Methode machen:

var arr = [{ "name": "mode", "value": "Add" }, { "name": "test", "value": "abc" }, { "name": "ID", "value": "6" }]; 
 
    
 
function getParameter(obj, param) { 
 
    var foundParams = obj.filter(function(x) { 
 
    return x.name === param 
 
    }); 
 
    
 
    if (foundParams.length == 0) 
 
    return null; 
 
    
 
    if (foundParams.length > 1) 
 
    throw new Error('Invalid object: more than one parameter ' + param); 
 
    
 
    return foundParams[0].value; 
 
} 
 

 
console.log(getParameter(arr, 'ID')); 
 
console.log(getParameter(arr, 'test')); 
 
console.log(getParameter(arr, 'mode')); 
 
console.log(getParameter(arr, 'notexists'));

+0

Filter wird ein Array nicht ein Objekt zurückgeben –

+0

@RajaprabhuAravindasamy Danke, ich habe dies jetzt behoben :) –

0
ar your_array =[ 
{name :"mode", value:"Add"}, 
{name :"test", value:"abc"}, 
{name :"ID", value:"6"} 
]; 

$.each(your_array, function(key, value) { 

    if(key=="ID") 
    { 
    var your_Value = value; //6 
    } 
}); 
+1

Obwohl dieser Code kann dazu beitragen, das Problem zu lösen, erklärt es nicht _why_ und/oder _how_ Es beantwortet die Frage. Die Bereitstellung dieses zusätzlichen Kontexts würde seinen langfristigen Wert erheblich verbessern. Bitte [bearbeiten] Sie Ihre Antwort, um eine Erläuterung hinzuzufügen, einschließlich der Einschränkungen und Annahmen. –

Verwandte Themen