第一个数组
var danu = ["nu", "da", "nu", "da", "da", "da", "da", "da", "da", "nu", "nu"];
第二个数组
var abc2 = ["2", "3", "2", "3", "3", "2", "2"];
我想替换所有" da"从第一个数组与第二个数组1的值1,所以我会得到
["nu", "2", "nu", "3", "2", "3", "3", "2", "2", "nu", "nu"];
我只想在Javascript中修复。 我尝试使用循环metod
for (i=0; i<danu.length; i++) {
if (danu[i] == "da") {
danu[i] = abc2[i];
}
}
但我最终得到了这个数组
["nu", "3", "nu", "3", "3", "2", "2", undefined, undefined, "nu", "nu"]
答案 0 :(得分:2)
您可以使用.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);
答案 1 :(得分:1)
$array = array(
"cid"=>"1-category-title",
"slug"=> "100-article-title",
"page_id" => 5
);
$string = "products/{:cid}/{:slug}";
$string = str_replace("{:cid}",$array['cid'], $string);
$string = str_replace("{:slug}",$array['slug'], $string);
if(!empty($array['page_id'])) $string .= "?page_id=".$array['page_id'];
echo $string;
&#13;
答案 2 :(得分:0)
假设第二个数组的长度等于&#34; da&#34;在第一个数组中,代码看起来像:
var j = 0;
for(int i; i<danu.length; i++){
if(danu[i] === "da"){
danu[i] = abc2[j];
j = j + 1;
}
}
但是,如果第二个数组的长度不同,则递增j可能会使abc2超出范围。根据您实际想要实现的目标,您需要一个不同的策略。