Javascript 使用嵌套的EJSON类型编写toJSONValue方法?

Javascript 使用嵌套的EJSON类型编写toJSONValue方法?,javascript,meteor,Javascript,Meteor,我有两种自定义类型,Board和Tile。两者都需要兼容。但是,Board包含一个二维的Tiles数组: function Board(size) { this.tiles = []; for (var row = 0; row < size; row++) { this.tiles[row] = []; for (var col = 0; col < size; col++) { this.tiles[row][col] = new Tile(r

我有两种自定义类型,
Board
Tile
。两者都需要兼容。但是,
Board
包含一个二维的
Tile
s数组:

function Board(size) {
  this.tiles = [];
  for (var row = 0; row < size; row++) {
    this.tiles[row] = [];
    for (var col = 0; col < size; col++) {
      this.tiles[row][col] = new Tile(row, col);
    }
  }
  /* ... */
}
或者嵌套的
EJSON
类型是否会自动转换,这样我就可以这样做:

Board.prototype.toJSONValue = function() {
  var value = {};
  value.tiles = _.map(this.tiles, function(row) {
    return _.map(row, function(tile) {
      return tile.toJSONValue();
    });
  });
  return value;
};
Board.prototype.toJSONValue = function() {
  return { tiles: this.tiles };
};

我怀疑第一种方法会导致我的
Tile
对象被视为普通对象,而不是使用我为它们定义的
EJSON
接口。但是第二种方法似乎是对
toJSONValue
方法的无效使用。这让我想知道是否有可能用
EJSON

JSON嵌套自定义类型。stringify不仅适用于数组,还适用于数组数组。例如,使用JavaScript控制台演示:

所以在您的例子中,您的最后一个函数,只有一行返回,应该可以工作。不是吗

另见;基本上,要创建自定义EJSON类型,您需要定义一种将数据表示为标准JSON可序列化类型(普通对象、数组等)的方法。您的数组数组已经是兼容的JSON可序列化类型,因此它应该按原样工作