Javascript 在第一个数组中查找值,然后使用另一个数组中的值进行更改

Javascript 在第一个数组中查找值,然后使用另一个数组中的值进行更改,javascript,Javascript,第一阵列 var danu = ["nu", "da", "nu", "da", "da", "da", "da", "da", "da", "nu", "nu"]; 第二阵列 var abc2 = ["2", "3", "2", "3", "3", "2", "2"]; 我想用第二个数组中的值1替换第一个数组中的所有“da”,这样我就可以得到 ["nu", "2", "nu", "3", "2", "3", "3", "2", "2", "nu", "nu"]; 我只想在Javascri

第一阵列

var danu = ["nu", "da", "nu", "da", "da", "da", "da", "da", "da", "nu", "nu"];
第二阵列

var abc2 = ["2", "3", "2", "3", "3", "2", "2"];
我想用第二个数组中的值1替换第一个数组中的所有“da”,这样我就可以得到

["nu", "2", "nu", "3", "2", "3", "3", "2", "2", "nu", "nu"];
我只想在Javascript中修复。 我试着用循环法

for (i=0; i<danu.length; i++) {
if (danu[i] == "da") {
 danu[i] = abc2[i];
}
}

假设第二个数组的长度等于第一个数组中“da”的数量,代码如下所示:

var j = 0;
for(int i; i<danu.length; i++){
    if(danu[i] === "da"){
        danu[i] = abc2[j];
        j = j + 1;
    }
}
var j=0;

对于(int i;i假设第二个数组的长度等于第一个数组中“da”的数量,代码如下所示:

var j = 0;
for(int i; i<danu.length; i++){
    if(danu[i] === "da"){
        danu[i] = abc2[j];
        j = j + 1;
    }
}
var j=0;

对于(int i;i,您可以使用
.map
danu
数组中的每个项目应用更改。然后有一个
c
计数,该计数在找到
“da”
时递增

danu = ["nu", "da", "nu", "da", "da", "da", "da", "da", "da", "nu", "nu"];
abc2 = ["2", "3", "2", "3", "3", "2", "2"];

c = 0;

newArr = danu.map(function(e,i){
    if(e == 'da') return abc2[c++];
    return e;
});

console.log(newArr);

您可以使用
.map
danu
数组中的每个项目应用更改。然后有一个
c
计数,该计数在找到
“da”
时递增

danu = ["nu", "da", "nu", "da", "da", "da", "da", "da", "da", "nu", "nu"];
abc2 = ["2", "3", "2", "3", "3", "2", "2"];

c = 0;

newArr = danu.map(function(e,i){
    if(e == 'da') return abc2[c++];
    return e;
});

console.log(newArr);
只需使用:

var danu=[“nu”、“da”、“nu”、“da”、“da”、“da”、“da”、“da”、“da”、“nu”、“nu”],
abc2=[“2”、“3”、“2”、“3”、“3”、“2”、“2”];
减少(函数(r,a,i,o){
o[i]=a=='da'?abc2[r++]:a;
返回r;
}, 0);
document.write(''+JSON.stringify(danu,0,4)+'');
只需使用:

var danu=[“nu”、“da”、“nu”、“da”、“da”、“da”、“da”、“da”、“da”、“nu”、“nu”],
abc2=[“2”、“3”、“2”、“3”、“3”、“2”、“2”];
减少(函数(r,a,i,o){
o[i]=a=='da'?abc2[r++]:a;
返回r;
}, 0);

document.write(“”+JSON.stringify(danu,0,4)+“”);
So循环并替换为第二个…我尝试了循环,但我不知道该如何操作。欢迎使用So。请访问查看如何操作以及在此询问什么。提示:如果(值等于),请使用for循环或一些数组原型方法将值替换为其他数组的第一个值,递增计数器。因此,循环并替换为第二个值…我尝试了循环,但不知道该如何操作。欢迎使用So。请访问以了解如何操作以及在此处询问什么。提示:如果(值等于),请使用for循环或某些数组原型方法用其他数组中的第一个值替换值,递增计数器。你能不能从0开始,然后
返回abc2[c++];
?@mplungjan这是一个很好的观点,我已经在我的答案中添加了它。谢谢。@mplungjan对于第二种方法,你将希望使用
shift
而不是pop。你能不能从0开始,然后
返回abc2[c++]
?@mplungjan这是一个很好的观点,我已经在我的答案中添加了这一点。谢谢。@mplungjan对于第二种方法,您将希望使用
shift
而不是pop。嗯,它不起作用。我得到了意外的标识符错误…但无论如何,谢谢,我从前面的答案中得到了修复。嗯,它不起作用。我得到了意外的标识符错误…但是nks无论如何,我从前面的答案中得到了修复。@mplungjan,是的,对于新数组,map较短,但此解决方案在原位工作。@mplungjan,是的,map较短,对于新数组,但此解决方案在原位工作。