我有一个包含3个项目的嵌套数组的数组,如下所示:
arr = [['first', 'second', 'third'],['one', 'two', 'three']];
$.each(arr, function (a, b, c) {
console.log(a, b, c);
});
当我使用上面的代码迭代它们时,它是console.logs:
0 Array [ "first", "second", "third" ] undefined
1 Array [ "one", "two", "three" ] undefined
如何才能将其记录为:
'first', 'second', 'third'
'one', 'two', 'three'
答案 0 :(得分:1)
像这样使用forEach
:
arr.forEach(function(subarr, index) { // loop over the array arr
subarr.forEach(function(e, subindex) { // loop over the sub-arrays of the array arr
console.log(e);
});
});
如果您想使用jQuery.each
,请使用:
$.each(arr, function(index, subarr) { // loop over the array arr
$.each(subarr, function(subindex, e) { // loop over the sub-arrays of the array arr
console.log(e);
});
});
期望的输出:
var arr = [['first', 'second', 'third'],['one', 'two', 'three']];
arr.forEach(function(subarr, index) {
var html = '<h1>' + subarr[0] + '</h1>';
html += '<p>' + subarr[1] + '</p>';
html += '<span>' + subarr[2] + '</span>';
console.log(html);
//div.append(html);
});
答案 1 :(得分:1)
在$.each()
中,第一个参数是索引,第二个参数是值,因此您希望console.log
b
arr = [
['first', 'second', 'third'],
['one', 'two', 'three']
];
$.each(arr, function(a, b, c) {
console.log(b);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
如果你想从子数组中获取每个元素,你需要嵌套循环。
arr = [['first', 'second', 'third'],['one', 'two', 'three']];
$.each(arr, function(a, b) {
$.each(b, function(i, e) {
console.log(e);
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
使用ES6,你也可以写这个。
var arr = [['first', 'second', 'third'],['one', 'two', 'three']];
[].concat(...arr).forEach(e => console.log(e))
&#13;
您可以使用数组解构为数组中的每个项创建单独的变量。
var arr = [['first', 'second', 'third'],['one', 'two', 'three']];
arr.forEach(function(e) {
var [a, b, c] = e;
$('body').append('<h2>' + a + '</h2>' + '<p>' + b + '</p>' + '<span>' + c + '</span>' )
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
答案 2 :(得分:0)
尝试使用嵌套数组的join
方法:
arr = [['first', 'second', 'third'],['one', 'two', 'three']];
$.each(arr, function (i, a) {
console.log(a.join(", "));
});
答案 3 :(得分:0)
函数(a,b,c)=&gt;一个用于索引,一个用于项目,而c则没有任何未定义。
如果您只想迭代数组,
arr.forEach(function(item){
console.log(item); // this will print inner arrays...
// as in your case item is array, you can access their values using item[0], item [1]...
});
在javascript中,第一个参数是item,第二个是index,但在jQuery中,第一个参数是index,第二个是item。