我有3个数组
array1 = [a,b,c,d,e,f]
array2 = [a,b,d,f]
array3 = [g,h]
我如何找出array2中不匹配array1的位置,然后从array3中插入元素?
所以输出看起来像
array4 = [a,b,g,d,h,f]
var EnglishArray = [<p>,This is a longer description. This will describe the item in greater detail.,</p>,<span please no translated Large donkey>,cat,</span>,<div>,test,<large>,<idk>,•,Hello worlds,<end?>]
var HTMLTags = [<p>,</p>,<span please no translated Large donkey>,</span>,<div>,<large>,<idk>,•,<end?>]
var translations = [Esta es una descripción más larga. Esto describe el tema con mayor detalle.,gato,prueba,Hola mundos]
function newString(EnglishArray, HTMLTags, translations){
var array4 = EnglishArray;
var j = 0;
for (var i = 0; i < EnglishArray.length; i++) {
if(HTMLTags[i] != EnglishArray[i]){
array4.splice(i, 1, translations[j]);
j++;
i++;
}
}
newString = array4.join('');
return newString;
}
它给我的输出是
<p>Esta es una descripción más larga. Esto describe el tema con mayor detalle.</p>gatocatprueba<div>Hola mundos<large>•<end?>
代替
<p>Esta es una descripción más larga. Esto describe el tema con mayor detalle.</p><span please no translated Large donkey>gato</span><div>prueba<large><idk>•Hola mundos<end?>
当我以较小的比例尝试时,它可以正常工作。但是,似乎标签越多,翻译的错误就越多。时间过长后,它将开始重复英语中的最后几个单词。
答案 0 :(得分:1)
您可以检查是否包含array2
值,如果不包含array3
元素。
var array1 = ['a', 'b', 'c', 'd', 'e', 'f'],
array2 = ['a', 'b', 'd', 'f'],
array3 = ['g', 'h'],
result = array1.map(v => array2.includes(v) ? v : array3.shift());
console.log(result);
没有map
和includes
var array1 = ['a', 'b', 'c', 'd', 'e', 'f'],
array2 = ['a', 'b', 'd', 'f'],
array3 = ['g', 'h'],
result = [],
i,
l = array1.length;
for (i = 0; i < l; i++) {
result.push(array2.indexOf(array1[i]) === -1 ? array3.shift() : array1[i]);
}
console.log(result);
答案 1 :(得分:0)
这应该可以工作,但是会在此过程中破坏array2和array3,因此您可能想要创建一个副本(array2.slice()
创建一个副本,而简单的赋值则不会)。
const array1 = ['a','b','c','d','e','f']
const array2 = ['a','b','d','f']
const array3 = ['g','h']
console.log(array1.map(x => array2[0] === x ? array2.shift() : array3.shift()))
答案 2 :(得分:0)
其他解决方案,更易为人们使用。
$glob_conn = new mysqli(p:127.0.0.1, config_mysql_db_user, config_mysql_db_password, 'uni_partner');
答案 3 :(得分:0)
var array1 = ['a','b','c','d','e','f']
var array2 = ['a','b','d','f']
var array3 = ['g','h']
var array4 = array1.concat(array2,array3);
var set = new Set(array4);
array4 = Array.from(set);