Hap*_*s31 5 javascript arrays string
试图在Codewars上解决这个问题。
但是如何根据给定数组中的值对字符串进行加扰呢?
即abcd给定的数组[0, 3, 2, 1]将成为acdb因为:
a 移至索引 0b 移至索引 3c 移至索引 2d 移至索引 1 我的猜测是首先将字符串拆分为一个数组。然后,我们要获取传递到scramble函数中的数组的索引值,并将该索引值处的字符从该数组推入新数组。最后加入数组:
function scramble(str, arr) {
let newArray = str.split("");
let finalArray = [];
for (let i = 0; i < str.length; i++) {
console.log(newArray);
finalArray.push(newArray.splice(arr[i], 1));
}
return finalArray;
}
console.log(scramble("abcd", [0, 3, 1, 2]));Run Code Online (Sandbox Code Playgroud)
但是这种逻辑的问题是每次都会.splice()删除字符newArray。
是否有另一种方法可以删除指定索引处的字符而不修改原始数组?
我认为切片也不会起作用。
您可以循环输入字符串,使用string.charAt(position)获取当前位置的字符,并将其放入新数组中,并放入从 Positions 数组检索的位置。
function scramble (str, arr) {
let newArray = [];
for (let i = 0; i < str.length; i++) {
newArray[arr[i]]=str.charAt(i);
}
return newArray.join();
}
console.log(scramble("abcd", [0, 3, 1, 2]));Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
62 次 |
| 最近记录: |