javascript获取数组元素的关键字

时间:2017-08-10 16:47:02

标签: javascript

我得到了以下数组:

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。谢谢

3 个答案:

答案 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)

您可以使用mapforEach

直接在javascript中执行此操作

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);