嗨,伙计们这里有一个真正的下巴。
我需要从对象内部的数组中获取值
$scope.document=[]
$scope.accounts=[{name:"123"},{name:"124"},{name:"125"}]
我想拿第一个数组并将其添加到$ scope.document我需要在循环中执行此操作。
所以最后我想说,如果$ scope.accounts有名称124做某事,$ scope.document有名称123做其他事情
答案 0 :(得分:0)
以下是使用基本JavaScript的示例:
var documents = [],
accounts =[ { name: '123' }, { name: '124' }, { name: '125' } ];
var doc = find(accounts, function(o) { return o.name === '123'; });
if (doc) documents.push(doc);
function find(arr, condition) {
for (var i = 0; i < arr.length; i++)
if (condition(arr[i])) { return arr[i]; break; }
}
https://jsfiddle.net/nLtjtu53/
在数组中查找对象后,您可以使用任何逻辑,我只是将其添加到此示例的文档中。
如果您想使用某些内置Array功能,这是一种可能性:
function find(arr, prop, value) {
var index = accounts.map(function(o) { return o[prop]; }).indexOf(value);
return arr[index];
}
请注意,并非所有浏览器都受支持。
您还可以使用像Underscore.js这样提供大量此类功能的库。
答案 1 :(得分:0)
我不明白第一个emtpy数组与它有什么关系,但你可以遍历第二个数组并按如下方式检查每个值:
$scope.accounts.forEach(function(obj) {
switch (obj.value) {
case 123:
//Statements executed when obj.value = 123.
//For instance: add this obj to the other array:
$scope.document.push(obj);
break;
case 124:
//Statements executed when obj.value = 124
break;
default:
//Statements executed when none of the values match
break;
}
});