Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何记录JavaScript/CoffeeScript数据结构_Javascript_Documentation_Coffeescript - Fatal编程技术网

如何记录JavaScript/CoffeeScript数据结构

如何记录JavaScript/CoffeeScript数据结构,javascript,documentation,coffeescript,Javascript,Documentation,Coffeescript,我正在寻找一种描述性的方法来记录JavaScript应用程序中使用的数据结构。由于JavaScript的动态特性,我发现很难做到这一点 例如,有什么好方法可以告诉我们,所使用的变量距离是一个长度为i和j的二维数组,存储的数字介于-1和MAX_INT之间。我可以想到这样的事情: distance[i][j] = -1 <= n <= MAX_INT distance[i][j]=-1当我复制大量数据模型时,我倾向于在JavaScript中编写注释中的类定义。我不确定你的问题是否就是这

我正在寻找一种描述性的方法来记录JavaScript应用程序中使用的数据结构。由于JavaScript的动态特性,我发现很难做到这一点

例如,有什么好方法可以告诉我们,所使用的变量距离是一个长度为i和j的二维数组,存储的数字介于-1MAX_INT之间。我可以想到这样的事情:

distance[i][j] = -1 <= n <= MAX_INT

distance[i][j]=-1当我复制大量数据模型时,我倾向于在JavaScript中编写注释中的类定义。我不确定你的问题是否就是这个意思

// JavaScript Class jsHomeLocation
// jsHomeLocation{
// string name
// string address
// }

var jsHomeLocation = {};
jsHomeLocation.name = "Travis";
jsHomeLocation.address = "California";
您还可以使用javascript对象跟踪示例的信息,即二维数组

var distanceData = {};
distanceData.type = "two-dimensional array";
distanceData.length = i * j;
distanceData.min = -1;
distanceData.max = MAX_INT;

虽然它还没有被广泛采用(还没有),但有一个问题。我只是自己学习,但您可以为二维数组(包装在对象中)编写模式,如下所示:

或者简单地说:

{
    "type":"array",
    "items":{
        "type":"array",
        "items": {
            "type":"number",
            "minimum":-1,
            "maximum":Number.MAX_VALUE
        }
    }
}

据我所知,没有CoffeeScript实现,但有几个JavaScript验证器的列表。我正在使用规范作者编写的一个名为(非常简单),我非常喜欢从CoffeeScript中调用它。

注意:json模式不支持Number.MAX_值。为了你的目的,你需要扩展它。我倾向于将真正的“int”限制在2^32-1,因为按位运算符只适用于这么大的数字,但从技术上讲,在JavaScript中,尾数符合2^53的任何数字都被认为是有效的。
{
    "type":"array",
    "items":{
        "type":"array",
        "items": {
            "type":"number",
            "minimum":-1,
            "maximum":Number.MAX_VALUE
        }
    }
}