如何在js中分离二维数组中的值

How to separate the values from two dimension array in js?

本文关键字:二维数组 分离 js      更新时间:2023-09-26
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"answers"310"分配给var msgid

我想将"23"answers"26"分配给var rspid

如何做到这一点?

我尝试显示新项目,结果是"数组"。我尝试显示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将数组从其他页面传递到当前页面?

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

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"]
}); 

请记住,这些都在功能范围内。如果您想在该范围之外使用它们,请在外部实例化它们。请参阅:闭包

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

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

试试这个:

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和rssid是包含"第n个"维度的数组。

Tnx