![](/img/trans.png)
[英]Accessing objects and arrays inside a Map object in JavaScript
[英]define a method inside an object containing arrays of objects (javascript)
我創建了一個對象影片和方法,如下所示;
var movies = [
{
aa : "value01"
bb : 6.5
},
{
aa : "value02"
bb : 6
},
{
aa : "value02"
bb : 7.5
},
percentage:function(movieRating, scale){
return (movieRating/scale) * 100;
}
]
訪問對象和方法時,我嘗試使用以下方法;
theRating = (movies.percentage(movies[0].bb,10));
但是運行腳本給了我一個;
Uncaught SyntaxError: Unexpected token :
實際代碼在https://pastebin.com/9tvrSVJ1中
我所做的工作可在https://pastebin.com/LkCwzWXn中找到
誰能指出我的第一版代碼錯誤。
提前致謝。
它不起作用的原因是因為您試圖將成員添加為數組,就好像它是對象屬性一樣。 如果您需要向數組添加函數,可以這樣做:
(還要注意,您收到的錯誤是因為電影對象中的屬性沒有用逗號分隔。)
var movies = [
{
aa : "value01",
bb : 6.5
},
{
aa : "value02",
bb : 6
},
{
aa : "value02",
bb : 7.5
},
function (movieRating, scale){
return (movieRating / scale) * 100;
}
]
然后可以像下面這樣調用該函數:
movies[3](1, 10);
我不確定您的實現方式,但是如果將索引更改,則將函數保留在數組中似乎有些奇怪。
試試看:var電影= [{aa:“ value01”,bb:6.5},{aa:“ value02”,bb:6},{aa:“ value02”,bb:7.5},{百分比:function(movieRating,比例){回報率(電影評分/比例)* 100; }}
]
並將評分定為theRating =電影[3] .percentage(電影[0] .bb,10)
另外,如果您(像我一樣)不喜歡我以前的答案,並且不想在數組內調用該函數,則可以像在其他函數上一樣在數組外定義它:
var movies = [
{
aa : "value01",
bb : 6.5
},
{
aa : "value02",
bb : 6
},
{
aa : "value02",
bb : 7.5
}
];
function percentage (movieRating, scale) {
return (movieRating / scale) * 100;
};
然后,可以像下面這樣調用它來使您的theRating
變量起作用:
theRating = (percentage(movies[0].bb, 10));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.