Javascript 替换阵列中的多个元素,同时保持其位置
大家好,我对Javascript 替换阵列中的多个元素,同时保持其位置,javascript,arrays,replace,Javascript,Arrays,Replace,大家好,我对javascript还很陌生,所以我寻求你们的帮助。 我的问题如下: 如果有一个数组 var arr1 = ["a", "b", "a" "c"]; 我想找到每个“a”并用另一个数组的某个元素替换 var arr2 = [1, 2, 3, 4, 5, 6,]; 现在我如何用arr2的第一个元素替换每个“a”? 每个“b”都带有第二个,依此类推 这有可能吗?保持位置?可以使用对象将每个字符与特定整数关联:obj: const obj = {a:1, b:2,
javascript
还很陌生,所以我寻求你们的帮助。
我的问题如下:
如果有一个数组
var arr1 = ["a", "b", "a" "c"];
我想找到每个“a”并用另一个数组的某个元素替换
var arr2 = [1, 2, 3, 4, 5, 6,];
现在我如何用arr2的第一个元素替换每个“a”?
每个“b”都带有第二个,依此类推
这有可能吗?保持位置?可以使用对象将每个字符与特定整数关联:
obj
:
const obj = {a:1, b:2, c:3, d:4, e:5, f:6};
arr1.map(e => obj[e])
然后使用该方法将数组arr1
与辅助对象obj
重新映射:
const obj = {a:1, b:2, c:3, d:4, e:5, f:6};
arr1.map(e => obj[e])
该方法创建一个新数组,其结果是对调用数组中的每个元素调用提供的函数
const arr1=[“a”、“b”、“a”、“c”];
常量obj={a:1,b:2,c:3,d:4,e:5,f:6};
console.log(
arr1.map(e=>obj[e])
)
您可以采用动态方法,连续构建一个哈希表并获取该值
var array1=[“a”、“b”、“a”、“c”],
array2=[1,2,3,4,5,6],
hash=Object.create(null),
指数=0;
result=array1.map(散列中的v=>v?散列[v]:散列[v]=array2[index++]);
控制台日志(结果)代码>这可能会帮助您:
var arr1=[“a”、“b”、“a”、“c”、“f”];
var arr2=[1,2,3,4];
//打印阵列
控制台日志(“arr1:”,arr1);
控制台日志(“arr2:”,arr2);
//循环通过arr1
var i;
//循环直到达到阵列1的长度。
对于(i=0;i
您可以使用从arr1
中的字符生成索引,如下所示:
let indices = arr1.map(str => parseInt(str, 36) - 10);
parseInt
的第二个参数是基数,36允许使用0-9
和a-z
指定数字。因为a=10
我们需要减去10以获得适当的索引(a
->索引0
)
然后使用这些索引从arr2
中获得相应的元素:
let result = indices.map(index => arr1[index]);
一个简短的例子:
让arr1=['a','b','a','c'],
arr2=[1,2,3,4,5,6],
result=arr1.map(s=>parseInt(s,36)-10.map(i=>arr2[i]);
控制台日志(结果)代码>您可以创建arr1
的字符串表示形式并替换字符:
var arr1=[“a”、“b”、“a”、“c”];
var arr2=[1,2,3,4,5,6,6];
var str=arr1.join(',');
arr2.forEach((编号、索引)=>{
var字符=arr1[索引];
if(字符&&isNaN(arr1[index])){
var re=新的RegExp(字符“g”);
str=str.replace(re,编号);
}
});
arr1=str.split(',');
控制台日志(arr1)代码>以下是我(更简单)的答案:
var arr1=[“a”、“b”、“a”、“c”];
//我想找到并替换每个“a”
//与另一个数组的某个元素
var arr2=[1,2,3,4,5,6,6];
用于(arr1中的var i){
arr1[i]=arr2[arr1[i].charCodeAt(0)-97];
}
log('arr1现在为:['+arr1+']')代码>
var arr1=[“a”、“b”、“a”、“c”];
var arr2=[1,2,3,4,5,6];
var uniqueItems=Array.from(新集合(arr1));
对于(i=0;iso),结果数组应该如下所示[1,2,1,3]
?不清楚“a”“b”与1和2@RicardoPontual是的,它应该是这样的。@epascarello我定义它是如何关联的,但是如果我替换所有的“a”也很好s带有变量。您是否尝试过编写代码来完成此任务?如果您希望调试帮助更简单,但只能处理单个字母,请发布此代码。这就是问题所在。如果是数字,则代码会有所不同。:-)