-1

我有一些问题来组织我的代码。

这是我想做的一个例子:

var Test = {
  old: [
    get: function(who, when){
       returrn({ subject: "Old test 001", text: "The test 001 was perform by "+who });
    },
    get: function(who, when){
      returrn({ subject: "Old test 002", text: "The "+when+" the test 002 was performed"});
    }
  ],
  new: [
     //Same thing
  ]
};

问题是,我们显然不能这样做,所以我想知道在 Array 中声明函数的方法是什么?我需要这样做,因为数组的每个方法 get() 都可以返回不同的消息,并且消息可以包含在文本中不同位置的参数中传递的变量,所以我必须明确声明它。

我不这样做:

var Test = {
  old: [
    one: {
      get: function(who, when){
        returrn({ subject: "Old test 001", text: "The test 001 was perform by "+who });
      },
    },
    two: {
      get: function(who, when){
        returrn({ subject: "Old test 002", text: "The "+when+" the test 002 was performed"});
      }
    }
  ],
  new: [
     //Same thing
  ]
};

因为我需要动态访问内容,比如Test.old[test_id].get("toto", "02/04/2013"). 不幸的是,我们无法通过 JSON 中的数值索引事物。

但是我会这样做,没有比这更好的了。

那么在这种情况下最好的做法是什么?

谢谢 !

4

1 回答 1

0

这个问题含糊不清,但我明白为什么你的代码不起作用。您将数组和对象混为一谈。数组字面量如下所示:

var myArray = [
  "first item",
  "second item",
  {value: "third item"},
  ["first/only item in fourth item"],
  1,
  2,
  3.14159,
  function(a,b) { return a + b; },
  "etc."
];

使用 push、pop、shift、unshift 和数字索引访问数组中的项目。

对象字面量如下所示:

var myObject = {
  one: "some value",
  two: {
    value: "object values can be anything"
  },
  123: 456,
  "a million": function (a, b) { return a - b; }
};

使用字符串索引访问对象中的项目。

最后,您是否在某处声明了returnrn()函数?无论哪种情况,为什么不只返回您的返回值?

于 2013-01-15T15:50:44.717 回答