Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.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:这是什么数据类型?_Javascript_Jquery - Fatal编程技术网

Javascript:这是什么数据类型?

Javascript:这是什么数据类型?,javascript,jquery,Javascript,Jquery,我正在使用API来构建一些东西,但它并没有很好的文档化,所以我只是凭猜测移动。 我有两个变量: g、 节点和g.边,当我这样做时: console.log(g.nodes); console.log(g.edges); 我得到了g.nodes的输出,如下所示: Object {hello: Object, test: Object, test1: Object, test2: Object, test3: Object…} 对于g.边,如下所示: [Object, Object, Obje

我正在使用API来构建一些东西,但它并没有很好的文档化,所以我只是凭猜测移动。 我有两个变量: g、 节点和g.边,当我这样做时:

console.log(g.nodes);
console.log(g.edges);
我得到了g.nodes的输出,如下所示:

Object {hello: Object, test: Object, test1: Object, test2: Object, test3: Object…} 
对于g.边,如下所示:

[Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, Object]

我知道G.边是一个数组,但是什么是G.No.[/P>< p>第一个代码< G.No.<代码>是一个JavaScript对象,但是你可以把它看成是一个类似于<代码> HashMap <代码>或一个键值对。

下一个是数组或类似数组的对象,可以是javascript对象,所有键都是数字,也可以是
arguments
type对象

关于如何通过:

对于
g.nodes
可以执行以下操作:

for(var key in g.nodes){
    var value = g.nodes[key];
    console.log(typeof value);
}
对于数组,最好不要使用第一次迭代方法,因为除了数组的实际数据之外,它还可以迭代
数组.prototype
中定义的所有其他属性,例如,如果添加以下内容:

Array.prototype.myarray_prop = 1;
如果您使用
for(obj中的var键)
方法,除了实际数组值之外,
myarray_prop
将显示为键,因为当我们通常使用数组时,我们希望迭代数组的实际值,而不是这些额外的道具,使用
for(obj中的var键)
不是一个好主意

因此,对于g.边,您最好这样做:

for(var i=0;i<g.edges.length;i++){
    var edge = g.edges[i];
    console.log(typeof edge);
}

for(var i=0;i这是一个有趣的问题。让我们逐一讨论:

console.log(g.nodes);
输出表明这是一个对象。此对象的属性为:

  • 你好
  • 试验
  • 测试1
  • 等等
  • 其次是一个对象数组,它本质上是一个对象的JavaScript集合

    避免遇到这种情况的一个好方法是正确地调试脚本

    调试JavaScript的好方法:

    function SayHello(){
    debugger;
    var msg = "Hello World";
    
    console.log(msg);
    
    }
    
    当你觉得不了解JavaScript的流程时,在FireFox、FireBug中运行该脚本,并在所有重要位置插入断点。FireBug将向你显示每个变量的类型和状态

    调试示例:

    function SayHello(){
    debugger;
    var msg = "Hello World";
    
    console.log(msg);
    
    }
    
    代码将在调试器处停止,您可以从中看到步骤,甚至可以看到变量“msg”的类型


    希望这对您有很大帮助。
    console.log(typeof g.nodes);
    可能是一个JS对象,用作从某种节点地址(表示为字符串)映射到节点对象的字典。console.log(typeof…)给出:object object
    console.log(“%o:%s”,g.nodes,g.nodes.constructor.name)
    mayhelp@MikeSamuel,是的。但是如何使用它呢?当我执行condole.log(g.nodes)并进入树内部时,我可以得到:test:Object edges:Array[0]hide:function(){id:“test”layoutForceX:0 layoutForceY:0 layoutPosX:7.705064028484167 layoutPosY:8.5591152926737点:Array:render:function(r,n){shape:T show:function(){proto:Object….所以有很多数据,但是当我为(e in…)做时,我只看到文本。你能说,如何访问childs吗?forEach失败,因为这不是数组,因为(e in g.nodes)只给出文本。@Tigran: