var arr = [];var arr2 = [];for(){
   var temp = xx.split(":");
   var obj = {
           x:  Number(temp[0]) ,  y: Number(temp[1])
    };
    console.info(obj) ;// 这个对象里面 x,y值能取到
   arr.push(obj);
}arr2.push(arr);
console.error(arr2) ;// 这里的 x 和 y变成了 NaN ,这是啥情况

解决方案 »

  1.   

    xx是什么?for是关键字,for()函数不会出错?
      

  2.   

    var arr=[];var arr2=[];arr.push({x:1,y:2});console.log(arr);arr2.push(arr);console.log(arr2);没有问题出现,你的代码不完整,怀疑中间经过其他计算了
      

  3.   

    从你上面贴出来的代码是没什么问题的,可能就是你for循环 循环后你那个 xx可能切割不成功
      

  4.   


    xx 分割确定成功了, arr.push(obj); 这句导致 x,y 变成 NaN
      

  5.   


    xx 分割确定成功了, arr.push(obj); 这句导致 x,y 变成 NaN初步确认 导致 NaN  Number(temp[0]) 这个Number转数组函数有关 或者是你 数据问题,我把代码贴出来给你看,你就明白var arr = [];
     
    var arr2 = [];
     var a= ['0:"1"','1:"2"','3:4','4:5']
    for(var i=0; i<a.length; i++){
    var temp = a[i].split(':')
       var obj = {
               x:  Number(temp[0]) ,  y: Number(temp[1])
        };
        console.info(obj) ;// 这个对象里面 x,y值能取到
       arr.push(obj);
       
    }
    arr2.push(arr);
    console.error(arr2) 
    VM505:10 {x: 0, y: NaN}
    VM505:10 {x: 1, y: NaN}
    VM505:10 {x: 3, y: 4}
    VM505:10 {x: 4, y: 5}var arr = [];
     
    var arr2 = [];
     var a= ['0:"1"','1:"2"','3:4','4:5']
    for(var i=0; i<a.length; i++){
    var temp = a[i].split(':')
       var obj = {
               x:  temp[0] ,  y: temp[1]
        };
        console.info(obj) ;// 这个对象里面 x,y值能取到
       arr.push(obj);
       
    }
    arr2.push(arr);
    console.error(arr2) 
    VM521:10 {x: "0", y: ""1""}
    VM521:10 {x: "1", y: ""2""}
    VM521:10 {x: "3", y: "4"}
    VM521:10 {x: "4", y: "5"}对比一下我发的2个demo 就明白了
      

  6.   

    Number() 函数把对象的值转换为数字。如果对象的值无法转换为数字,那么 Number() 函数返回 NaN 如果你的数据是一个字符串那么就会出现这个问题了