![](/img/trans.png)
[英]How do I reference a JavaScript object property with a hyphen in it?
[英]JavaScript: How do I reference an object property in an object key?
我收到一个错误消息,因为JavaScript不喜欢video.id中的点。 有没有解决的办法?
假设我有一个数组:
var videos = [
{
"id": 65432445,
"title": "The Chamber"
},
{
"id": 675465,
"title": "Fracture"
},
{
"id": 70111470,
"title": "Die Hard"
},
{
"id": 654356453,
"title": "Bad Boys"
}
];
//这在函数中
return videos.map(function(vids){
return {videos.id : vids.title}; // videos.id does not work
});
您不能将变量用作速记对象构造函数的对象键。 您需要先构造对象,然后使用方括号表示法,如下所示:
return videos.map(function(vid){
var ret = {};
ret[vid.id] = vid.title;
return ret;
});
但这会给你一个像
[{675465: "The Chamber"}, ...]
而您可能想做这样的事情
var vids = {};
videos.forEach(function (vid) {
vids[vid.id] = vid.title;
});
结果是这样的结构:
{675465: "The Chamber", ...}
允许您按ID访问视频:
console.log(vids[675465]); // outputs "The Chamber"
在地图文字中,键始终被解释为字符串。 使用动态键的唯一方法是使用括号符号。
您可以尝试以下方法:
videos.map(function(vids) {var x={}; x[vids.id]=vids.title; return x; })
这是因为videos
是一个对象数组,每个对象都有一个id
属性。 它没有自己的id
。
您访问其元素之一的id
的方式如下:
videos[i].id
我认为这就是您想要的:
return videos.map(function(vids){
var vid = {};
vid[vids.id] = vids.title;
return vid;
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.