基本上我有一个从中提取数据的数组。我想向其中添加一个新数组,以便提取更多数据。
var myArray.libraries = []
像这样通过 for 循环获取添加的项目:
for(var x=0; x < items.length; x++){
myArray.libraries ({ name: items(x).name, state: items(x).state});
}
效果很好,我可以从 myArray.libraries .name
获得我需要的东西。我需要添加类似“书籍”的内容,以便每个条目都可以有它的书籍列表。可能有 1 本书或多本书。
需要说明的是,我使用的是 angular,所以我使用类似这样的东西为每个库输出:
<div ng-repeat="library in libraries">
<p>{{library.name}}</p>
</div>
我只需要添加 books
这样我就可以遍历该图书馆中的每本书:
<div ng-repeat="book in libraries.books">
<p>{{book.name}}</p>
</div>
我尝试使用 myArray.libraries.books = []
但这并没有将收集添加到每个图书馆。我还尝试了 myArray.libraries.push({ books: { } })
但这没有任何影响,并给了我一个错误,我无法推送到 myArray.libraries。书籍
,因为书籍不存在。
编辑
这是一些示例代码。我用的是 angular 但原理应该是一样的:
$scope.libraries= [];
//start loop to get the installations
for (var x = 0; x < res.rows.length; x++) {
$scope.libraries.push({ ... , books: []});
//run a new query to get the additional libraries info
var booksQuery = query to get books;
//run query to get results and loop through them
for (var i = 0;i < res2.rows.length; i++) {
$scope.libraries[x].books.push({ name: res2.rows.item(i).prodName });
}
});
}
编辑
我运行了一些测试,结果发现当我进行第二次数据库调用时它不知道原始 $scope
存在。
最佳答案
尝试如下:
for(var x=0; x < items.length; x++){
myArray.libraries ({ name: items(x).name, state: items(x).state, books: []});
}
这应该可以解决问题。
关于javascript - 如何将空数组添加到对象数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30673117/