Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.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
展开console.log后才会解析Javascript对象键_Javascript_Javascript Objects - Fatal编程技术网

展开console.log后才会解析Javascript对象键

展开console.log后才会解析Javascript对象键,javascript,javascript-objects,Javascript,Javascript Objects,我和你有同样的问题。虽然回答了这个问题,但没有提供决议 我有一个javascript对象,其中console.log(anObject)显示所有键,但console.log(JSON.stringify(anObject))不显示所有键,它只显示2个键中的1个 在javascript(而非控制台)级别上,这是什么原因?我如何解决这一问题,以便此段后面的代码可以访问所有键 有没有办法强制对象分辨率 提前谢谢 它被包装在一个异步的getJson中,但讽刺的是,被遗漏的数据不是json结果数据。我正

我和你有同样的问题。虽然回答了这个问题,但没有提供决议

我有一个javascript对象,其中console.log(anObject)显示所有键,但console.log(JSON.stringify(anObject))不显示所有键,它只显示2个键中的1个

在javascript(而非控制台)级别上,这是什么原因?我如何解决这一问题,以便此段后面的代码可以访问所有键

有没有办法强制对象分辨率

提前谢谢


它被包装在一个异步的getJson中,但讽刺的是,被遗漏的数据不是json结果数据。我正在使用cytoscape.js库。问题发生在本节中cytoscape.js文件的第5183行,该行正在解析我的xar(元素数组),如下所示。数据密钥存在,但组密钥不存在,除非在控制台中使用

      // specify via opts.nodes and opts.edges
  else if( $$.is.plainObject(opts) && ($$.is.array(opts.nodes) || $$.is.array(opts.edges)) ){
    var elesByGroup = opts;
    var jsons = [];

    var grs = ['nodes', 'edges'];
    for( var i = 0, il = grs.length; i < il; i++ ){
      var group = grs[i];
      var elesArray = elesByGroup[group];

      if( $$.is.array(elesArray) ){

        for( var j = 0, jl = elesArray.length; j < jl; j++ ){
              //console.log(JSON.stringify(elesArray[j]))
          if ( typeof elesArray[j] !== "undefined" ) {
              var json = elesArray[j];
              console.log(elesArray[j].data)
              json.group = group;
              jsons.push( json );
          }
        }
      }
    }
//通过opts.nodes和opts.edges指定
else如果($$.is.plainObject(opts)&&($$.is.array(opts.nodes)|$$.is.array(opts.edges))){
var elesByGroup=opts;
var-jsons=[];
var grs=['节点','边'];
对于(var i=0,il=grs.length;i

$(文档).ready(函数(){
函数notInArray(值,数组){
返回数组。indexOf(值)=-1;
}
var node_array=新数组();
var edge_array=新数组();
var完整数据;
var xar=新对象();
xar.nodes=[];
xar.edges=[];
$.getJSON(“http://127.0.0.1/loctest,函数(xad){
完整_数据=xad;
var i=0;
$。每个(xad,函数(键,val){
s=val.src;
d=val.dst;
if(非inarray(s,node_数组)){
节点_数组推送;
xar.nodes[i]={
数据:{
id:s
}
};
i++;
}
if(notInArray(d,node_数组)){
节点_数组推送(d);
xar.nodes[i]={
数据:{
id:d
}
};
}
xar.边[i]={
数据:{
id:i.toString(),
体重:3,
资料来源:s,
目标:d
}
};
i++;
});
//console.log(xar);
$('#cy')。细胞景观({
//容器:document.getElementById('cy'),
样式:cytoscape.stylesheet()
.selector('节点')
.css({
'内容':'数据(id)'
})
.selector('边')
.css({
'目标箭头形状':'三角形',
“宽度”:4,
“线条颜色”:“ddd”,
“目标箭头颜色”:“ddd”
})
.selector(“.highlighted”)
.css({
“背景色”:“61bffc”,
“线条颜色”:“61bffc”,
“目标箭头颜色”:“61bffc”,
“转换属性”:“背景色、线条颜色、目标箭头颜色”,
“转换持续时间”:“0.5s”
}),
元素:xar,
布局:{
名称:“面包第一”,
导演:是的,
根:“#a”,
填充:10
}
});
控制台日志(cy);
var bfs=cy.elements().bfs('#a',function(){},true);
var p=0;
var highlightNextEle=函数(){
bfs.path[p].addClass('highlighted');
if(p
JSON.stringify
仅列出可枚举的自身属性

下文对此进行了解释:

抽象操作JO(value)序列化对象

设K是由所有字符串的名称组成的字符串的内部列表 其[[Enumerable]]属性为的值的自身属性 true。字符串的顺序应与对象使用的顺序相同。键标准内置函数

所以如果你看不到房子,那就意味着

  • 尚未添加属性。注意
    console.log
    可能是异步的,因此可以在调用
    log
    后添加属性,但会显示在控制台中
  • 财产是继承的,而不是自己的
  • 该属性不可枚举

您能在这里输入足够的代码来重现您的问题吗?寻求调试帮助的问题(“为什么此代码不工作?”)必须包括所需的行为、特定的问题或错误,以及在问题本身中重现问题所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。添加了代码片段-我为没有提前添加它而道歉。我不确定这是一个通用变量对象键问题还是其他问题at可能是特定于此特定代码的。因此,我首先只参考了另一篇SO文章。嗨,Eli,你是如何解决问题的?你能够强制解决对象吗?不,我最终重构了javascript以不同方式处理AJAX调用,以确保在工作流c之前完全填充所有变量继续。根据我提到的另一个so问题,我只使用JSON.stringify来证明密钥还没有。我很难确定
 $(document).ready(function() {

 function notInArray(value, array) {
     return array.indexOf(value) == -1;
 }

 var node_array = new Array();
 var edge_array = new Array();

 var full_data;

 var xar = new Object();

 xar.nodes = [];
 xar.edges = [];

 $.getJSON("http://127.0.0.1/loctest", function(xad) {
     full_data = xad;
     var i = 0;
     $.each(xad, function(key, val) {
         s = val.src;
         d = val.dst;
         if (notInArray(s, node_array)) {
             node_array.push(s);
             xar.nodes[i] = {
                 data: {
                     id: s
                 }
             };
             i++;
         }
         if (notInArray(d, node_array)) {
             node_array.push(d);
             xar.nodes[i] = {
                 data: {
                     id: d
                 }
             };
         }
         xar.edges[i] = {
             data: {
                 id: i.toString(),
                 weight: 3,
                 source: s,
                 target: d
             }
         };
         i++;
     });

     //console.log(xar);
     $('#cy').cytoscape({
         //container: document.getElementById('cy'),

         style: cytoscape.stylesheet()
             .selector('node')
             .css({
                 'content': 'data(id)'
             })
             .selector('edge')
             .css({
                 'target-arrow-shape': 'triangle',
                 'width': 4,
                 'line-color': '#ddd',
                 'target-arrow-color': '#ddd'
             })
             .selector('.highlighted')
             .css({
                 'background-color': '#61bffc',
                 'line-color': '#61bffc',
                 'target-arrow-color': '#61bffc',
                 'transition-property': 'background-color, line-color, target-arrow-color',
                 'transition-duration': '0.5s'
             }),

         elements: xar,

         layout: {
             name: 'breadthfirst',
             directed: true,
             roots: '#a',
             padding: 10
         }
     });


     console.log(cy);
     var bfs = cy.elements().bfs('#a', function() {}, true);

     var p = 0;
     var highlightNextEle = function() {
         bfs.path[p].addClass('highlighted');

         if (p < bfs.path.length) {
             p++;
             setTimeout(highlightNextEle, 1000);
         }
     };

     // kick off first highlight
     highlightNextEle();

 });

});