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较短,对于新数组,但此解决方案在原位工作。