如何在js中将值与二维数组分开?

时间:2011-06-15 01:39:48

标签: javascript jquery arrays

jQuery.get("ChkNewRspLive.php?lastmsgID=" + n, function(newitems){
     //some code to separate values of 2d array.
     $('#div1').append(msgid);
     $('#div2').append(rspid);  
}); 

假设newitems的值为[["320","23"],["310","26"]]

我想将“320”和“310”分配给var msgid

我想将“23”和“26”分配给var rspid

怎么做?

我试图显示newitems,输出是“Array”。我试图显示newitems [0],输出为空白。

如果我重新声明var newitems = [[“320”,“23”],[“310”,“26”]];有用。所以我猜jQuery.get中的变量newitems是错误的。是不是我不能直接通过jQuery将数组从其他页面传递到当前页面?

关于其他网页上的数组,如果echo json_encode($Arraytest);输出为[["320","23"],["310","26"]],但如果echo $Arraytest;输出为Array。如何通过jQuery.get将数组从其他页面传递到当前页面?

3 个答案:

答案 0 :(得分:0)

您可以使用plucore.js中的pluck:http://documentcloud.github.com/underscore/#pluck

var msgid = _(newitems).pluck(0)
var rspid = _(newitems).pluck(1)

答案 1 :(得分:0)

我不完全理解这个问题,但我假设你想要一个数组中的值,因为两个值不能同时存储在一个(标量)变量中。

jQuery.get("ChkNewRspLive.php?lastmsgID=" + n, function(newitems){
    //some code to separate values of 2d array.
    var msgid = [],
        rspid = [];
    for( i = 0 ; i < newitems.length ; i++){
        msgid[msgid.length] = newitems[i][0];
        rspid[rspid.length] = newitems[i][1];
    }
    //msgid now contains ["320","310"]
    //rspid now contains ["23","26"]
}); 

请记住那些属于功能范围。如果要在该范围之外使用它们,请在外部实例化它们。 see: closure

答案 2 :(得分:0)

试试这个:

function getArrayDimension(arr, dim) {
  var res = [];
  for(var i = 0; i < arr.length; i++) {
    res.push(arr[i][dim]);
  }
  return res;
}

var newitems = [["320","23"],["310","26"]];
var msgid = getArrayDimension(newitems, 0);
var rspid = getArrayDimension(newitems, 1);

msgid和rapid是包含'nth'维度的数组。

TNX