如何在 Javascript 数组中进行赋值
How to make assignment inside the Javascript array
var events = [
{id: 100,url: "mc.jsp?id=" + id},
{id: 200,url: "mc2.jsp?id=" + id},
{id: 300,url: "mc2.jsp?id=" + id}
]
运行时,url 等于 mc.jsp?id=undefined
,那么如何将 ID (100( 分配给 URL 以获得 mc.jsp?id=100
的值呢?并且还将第二个网址设为mc2.jsp=200
,第三个网址设为mc2.jsp?id=300
所以我不能在数组之外进行分配。
不能访问构造上的对象文本中的其他属性。你会得到一个undefined
,因为你没有可变id
。您将需要使用:
var id = 100;
var events = [{"id":id, "url":"mc.jsp?id=" + id}];
或:
var event = {id: 100};
event.url = "mc.jsp?id=" + event.id
var events = [event];
但是你可以定义一个 getter:
var events = [{id: 100, get url() { return "mc.jsp?id="+this.id; } }];
这是非常复杂和难以理解的。也许最好做这样的事情:
function MyEvent(id, mc) {
this.id = id;
this.mc = mc;
}
MyEvent.prototype.getUrl = function() {
return "mc"+this.mc+".jsp?id="+this.id;
};
var events = [new MyEvent(100, ""), new MyEvent(200, "2"), ...];
但是,应该没有这样的问题。如果对数字进行硬编码,为什么不对 url 进行硬编码?如果您不想要冗余,请不要将 id 存储两次,并在每次需要时附加它。
var id = 100, events = [{id: id, url: "mc.jsp?id=" + id}];
不能
添加id
,因为它是属性的名称,而不是变量。你可以做:
var ids = [100,200,300];
var events = [];
for(var i = 0; i < ids.length;i++){
events[i] = {id: ids[i],url: "mc.jsp?id=" + ids[i]};
}
你可以尝试类似的东西。
var event = {
'id': 100,
'url': 'mc.jsp?id=' + event.id
}
var events = [];
events.push(event);
相关文章:
- Lodash 从值数组中查找数组中的值
- 使用Undercore获取属性值数组
- 选择具有值数组的所有元素的最有效方法
- 使用jquery grep过滤具有值数组的json对象
- 如何使用JQuery将值数组插入到数据库中
- 创建属性值数组,其中属性名称以特定字符串结尾
- 如何在jqueryajax中发布值数组
- 如何在不赋值数组变量的情况下读取数组数据
- Lodash 从与值数组不匹配的数组中获取项目
- 下划线,将对象列表转换为对象值数组
- 我可以将变量赋值为数组值吗?
- 将键/值数组中的对象与另一个对象(键/值)进行比较
- 使用Node中的Q promise库对值数组顺序调用/执行相同的函数;并返回带有结果的新数组/集合
- 创建一个计算值数组,该数组绑定到AngularJS中的其他输入
- 将JavaScript对象转换为值数组
- 将选定值数组发送到控制器-MVC
- 将键、值对象转换为仅值数组
- 将Adobe DTM中的值数组赋值给列表变量
- JavaScript -赋值-数组的数组
- 改变一个数组的值也会改变另一个赋值数组的值