我得到了以下数组:
var myarr = [['a','b',1],['c','d',2],['e','f',3]]
我按以下方式迭代它:
$(myarr).each(function(k, v){
if(this[2] == 2){
//need to make 'c' and 'd' nulls
}
});
所以我需要获取数组元素的键并更改其1和2值,以便数组看起来像:
[['a','b',1],['0','0',2],['e','f',3]]
我尝试了以下内容:
this[0] = this[1] = null;
但很明显它没有产生任何结果。任何想法如何解决它将是受欢迎的。我可以使用jQuery。谢谢
答案 0 :(得分:1)
this
变量没有绑定到您正在迭代的数组的值,需要使用第二个参数提供的值:
var myarr = [['a','b',1],['c','d',2],['e','f',3]]
$(myarr).each(function(k, v){
if(v[2] == 2){
v[0] = v[1] = null;
}
});
console.log(myarr)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
答案 1 :(得分:0)
回调中的第一个参数是索引,第二个参数是当前元素,因此您的代码应如下所示。
var myarr = [['a','b',1],['c','d',2],['e','f',3]]
$.each(myarr, function(i, e) {
if(e[2] == 2) e[0] = null, e[1] = null
})
console.log(myarr)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
答案 2 :(得分:0)
var myarr = [['a','b',1],['c','d',2],['e','f',3]]
myarr = myarr.map(function(ele, idx){
if(ele[2] == 2){
ele[0] = ele[1] = '0';
}
return ele;
});
console.log(myarr);
var myarr1 = [['a','b',1],['c','d',2],['e','f',3]]
myarr1.forEach(function(ele, idx){
if(ele[2] == 2){
myarr1[idx][0] = myarr1[idx][1] = '0';
}
});
console.log(myarr1);