Ich habe eine Funktion wie diese, die funktioniert, aber ich verarbeiten das gesamte Array, bevor es zurückgibt:Rückkehr von angular.foreach ist
function getDefault(name, preferences){
console.log("Getting " + name);
var v;
angular.forEach(preferences, function(value, key){
console.log("Checking " + value.name);
if(value.name == name){
v = value.value;
console.log("Got match, value = " + v);
}
});
console.log("v is " + v);
return v;
}
Als ich diese (Rückkehr tun aus dem forEach
Block, ich undefined, aber es sagt, dass der richtige Wert zurückgegeben.
function getDefault(name, preferences){
console.log("Getting " + name);
var v;
angular.forEach(preferences, function(value, key){
console.log("Checking " + value.name);
if(value.name == name){
v = value.value;
console.log("Got match, value = " + v);
console.log("v is " + v);
return v; // The function returns but the value is undefined
}
});
}
s Was hier ist der Deal? ist Winkel irgendwie einen seltsamen Rahmen zu schaffen, den weggeht?
Ich denke, können Sie nicht wieder von 'forEach' wie' forEach' in JS & lodash/unterstreichen außer 'return false;' welche aus der Schleife brechen. – Tushar
Sie benötigen ['Array # filter'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter). – Tushar
Vielleicht kann dieser mehr klären und Ihnen helfen http://stackoverflow.com/questions/13843972/angular-js-break-foreach –