javascript - 在包含对象数组的对象内定义方法(javascript)

标签 javascript arrays object methods

我创建了一个对象电影和方法,如下所示;

    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);

我不确定你的实现,但是如果它的索引可能会发生变化,那么将函数保留在数组中似乎有点奇怪。

关于javascript - 在包含对象数组的对象内定义方法(javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51680732/

相关文章:

javascript - 如何仅以 mm/dd/yy 格式验证日期?

javascript - 在数组中查找对象

PHP 等效于 ASP.NET 应用程序/缓存对象

java - 使用 O(n) 时间复杂度搜索对给定方法返回 true 的二维数组

java - 使用 boolean 值搜索数组

java - 为什么数组类没有任何实用程序方法?

c++ - 使用类中的另一个成员初始化成员数组的大小

javascript - 如何在不重新链接的情况下将 jQuery 包含在 iframe 中?

javascript - 如何停止 div 加载 HTML 页面

javascript - 如何使用 AngularJS 将选定的第一个值设置为 SELECT(multiple)