需要有关构建逻辑、向对象添加属性的帮助
Need help regarding building logic, adding properties to object
我有一个图像数组,其中有许多图像。不固定,可以是一个、两个或八个。当我有固定数量的图像时,我使用的代码类似于
var details = {
image1: {
position: 0,
title: $slideDiv.children().eq(0).attr("alt")
},
image2: {
position: -400,
title: $slideDiv.children().eq(1).attr("alt")
},
image3: {
position: -800,
title: $slideDiv.children().eq(2).attr("alt")
},
image4: {
position: -1200,
title: $slideDiv.children().eq(3).attr("alt")
},
image5: {
position: -1600,
title: $slideDiv.children().eq(4).attr("alt")
}
}; //end of var details
但现在我有了阵列中的图像。我希望details对象在其中添加的图像数等于数组中的图像数。我试过这种
var details = {};
var position = 0;
images.each(function(index){
details.("image" + index) : {
position: position,
title: $slideDiv.children().eq(index).attr("alt")
}
position += -400;
}) ; //end of .each()
我试图做的逻辑是,如果我在图像阵列中有两个图像,它应该变成类似于的东西
var details = {
image1: {
position: 0,
title: $slideDiv.children().eq(1).attr("alt")
},
image2: {
position: -400,
title: $slideDiv.children().eq(2).attr("alt")
}
}
但这不起作用。当然我的语法是错误的
details.("image" + index) : {..}
我该怎么做?
感谢
在Javascript中,您可以通过以下两种方式之一访问属性:
obj.property
相当于
obj["property"]
所以在你的情况下,你会想这样写:
details["image"+index]
正确的语法是:details['image' + index]
,稍后可以通过details.image0
、details.image1
等进行访问。
所以它应该是:details['image' + index] = {prop: val}
相关文章:
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- Meteor-将选定窗体中的对象添加到集合中
- 在play2框架中向json对象添加下拉列表项
- 如何在javascript上向数组的对象添加新元素
- JSON到对象数组,并向每个对象添加项
- 如何将一个对象添加到每个对象数组中
- 向Angular作用域对象添加对象数组——TypeError
- CoffeeScript将对象添加到数组中
- 如何从Addon SDK向选项卡对象添加进度侦听器
- 使用ja将对象添加到HTML画布中
- 向通过ReST JSON调用生成的Angular Javascript对象添加方法
- 将新对象添加到本地存储
- 为什么可以'我们在函数体中为函数对象添加属性,就像在javascript中为对象文字添加属性一样
- 使用游标循环将JS对象添加到数组中
- 向调用全局javascript函数的对象添加处理程序
- 将另一个文件中的对象添加到单独文件中的阵列中
- 将对象添加到数组中
- 为新对象添加函数,将对象添加到数组中.理解困难'这'关键字
- sequelize为找到的对象添加值
- 向对象添加新方法和值,同时避免重复