我正在尝试访问 JavaScript 数组中的元素:
[["1","John"],["2","Rajan"],["3","Hitesh"],["4","Vin"],["5","ritwik"],["6","sherry"]]
我想访问 1, 2, 3, 4, 5, 6 分别在一个变量中,John, Rajan, Hitesh, Vin, Ritwik, Sherry 分别在一个变量中。 我尝试将其转换为字符串并 split(),但它不起作用。
这是我尝试过的代码
var jArray = <?php echo json_encode($newarray); ?> ;
var nJarr = jArray[0]; nJarr.toString();
var res = nJarr.split(","); var apname = res[0];
alert(apname);
但屏幕上没有出现任何警报
最佳答案
如果您愿意使用 Underscore,那么它就是
var transposed = _.zip.apply(0, arr);
您要查找的数组将位于 transpose[0]
和 transpose[1]
中。
您可以相当轻松地编写自己的转置函数,并且如果您可以使用 ES6 语法,它会更加紧凑:
transpose = arr => Object.keys(arr[0]).map(i => arr.map(e => e[i]));
>> transpose([["1","John"], ["2","Rajan"], ...]]
<< [[1, 2, ...], ["John", "Rajan", ...]]
如果您想要 ES5 版本,这里有一个带有注释的版本:
function transpose(arr) { // to transpose an array of arrays
return Object.keys(arr[0]) . // get the keys of first sub-array
map(function(i) { // and for each of these keys
arr . // go through the array
map(function(e) { // and from each sub-array
return e[i]; // grab the element with that key
})
))
;
}
如果您更喜欢旧式 JS:
function transpose(arr) {
// create and initialize result
var result = [];
for (var i = 0; i < arr[0].length; i++ ) { result[i] = []; }
// loop over subarrays
for (i = 0; i < arr.length; i++) {
var subarray = arr[i];
// loop over elements of subarray and put in result
for (var j = 0; j < subarray.length; j++) {
result[j].push(subarray[j]);
}
}
return result;
}
关于javascript - 如何访问数组中的数组元素(JavaScript)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29314701/