Zinu, ka līdzīgi jautājumi ir uzdoti jau iepriekš, bet šis ir nedaudz atšķirīgs. Man ir nesauktu objektu masīvs, kas satur nosauktu objektu masīvu, un man ir nepieciešams iegūt objektu, kura "nosaukums" ir "string 1". Šeit ir dots masīva piemērs.
var array = [
{ name:"string 1", value:"this", other: "that" },
{ name:"string 2", value:"this", other: "that" }
];
Atjauninājums: Man to vajadzēja pateikt jau agrāk, bet, kad es to atradu, es gribu to aizstāt ar rediģētu objektu.
Varat veikt cilpas pār masīvu un pārbaudīt šo īpašību:
function search(nameKey, myArray){
for (var i=0; i < myArray.length; i++) {
if (myArray[i].name === nameKey) {
return myArray[i];
}
}
}
var array = [
{ name:"string 1", value:"this", other: "that" },
{ name:"string 2", value:"this", other: "that" }
];
var resultObject = search("string 1", array);
Izmantojiet vienkāršu for
cilpu:
var result = null;
for (var i = 0; i < array.length; i++) {
if (array[i].name === "string 1") {
result = array[i];
break;
}
}
Vai arī, ja varat, tas ir, ja jūsu pārlūkprogramma to atbalsta, izmantojiet Array.filter
, kas ir daudz kodolīgāks:
var result = array.filter(function (obj) {
return obj.name === "string 1";
})[0];
To var izdarīt, izmantojot vienkāršu cilpu:
var obj = null;
for (var i = 0; i < array.length; i++) {
if (array[i].name == "string 1") {
obj = array[i];
break;
}
}