循环对象数组
Looping object arrays
我试图在一个对象内循环我的所有数组,然后检查数组内的对象是否设置了imageUrl,如果没有。然后将其设置为默认值。
投资组合[i]返回未定义。
that.portfolio = {
applications = [
{ imageUrl: "" }
],
websites = [
{ imageUrl: "" }
]
}
var setDefaultImage = function () {
var portfolio = that.portfolio;
var defaultImageUrl = "App/Main/images/shared/defaultImg64x64.png";
for (var i = 0; i < Object.keys(portfolio).length; i++)
portfolio[i].forEach(function (currentObj) {
if (!currentObj.imageUrl) {
currentObj.imageUrl = defaultImageUrl;
}
});
}
portfolio
是一个对象而不是数组,因此循环它的正确方法是for-in
循环:
for (var key in portfolio) {
portfolio[key].forEach(function(currentObj) {
if (!currentObj.imageUrl) {
currentObj.imageUrl = defaultImageUrl;
}
});
}
正如你所看到的,Object.keys(portfolio)
在这里不需要想太多,但如果你想的话,你也可以使用它:
var keys = Object.keys(portfolio);
for (var i = 0; i < keys.length; i++) {
portfolio[keys[i]].forEach(function (currentObj) {
if (!currentObj.imageUrl) {
currentObj.imageUrl = defaultImageUrl;
}
});
}
相关文章:
- 将数组对象传递到struts2中的操作类
- 如何使用jquery返回php-json数组对象
- 从其名称获取javascript数组对象
- 值未与数组对象绑定
- 如何按数组/对象值的倍数过滤对象数组
- 在表中显示数组对象
- 在数组对象中分组
- 将第二个或多个数组推送到数组对象 AngularJS 中
- 重新排列 JavaScript 数组/对象
- 键上的javascript数组对象过滤器
- handontable:在不更改数据数组/对象的情况下隐藏某些列
- 用于跟踪购物车可用性的Javascript数组/对象/哈希表
- 重建有角度的java脚本数组对象
- 对JSON数组对象进行排序
- 连接与数组对象相关的文本:方式和位置
- 哪些浏览器和版本支持将常见的类数组对象直接传递到fn.apply()
- 如何使用Handlebars循环数组对象和模板
- 是否可以引用JS数组/对象中的另一个元素
- Javascript中的名称索引-数组/对象
- 数组长度不等于数组对象