我想让用户输入类似“ hello world”的字符串。然后将字符串转换为数组,每个字母都是数组的一部分。然后我想更改为数组的值。那么我想把数组和数组的所有部分组合成一个字符串,然后输出它。因此输出看起来像“ gwkki qieks”,请注意替换值来自另一个数组。
答案 0 :(得分:1)
如我的评论中所述,您可以使用.split("")
将字符串转换为字符数组。然后,您可以在进行任何修改后使用.join("")
将其转换回字符串。
对于这种方法,我建议使用一个对象,因为它的作用就像一个哈希图,这样您就不必每次都遍历所有替换字符:
var str = "hello world"; // Original String
var map = { // Used for char replacement
'h': 'g',
'e': 'w',
'l': 'k',
'o': 'i',
'w': 'q',
'r': 'e',
'd': 's'
};
var arr = str.split(""); // Convert to array of chars
for(var i=0; i<arr.length; i++) { // For each char in our array
if(arr[i] in map) { // If the char in our map
arr[i] = map[arr[i]]; // Then replace it
}
}
console.log(arr.join("")); // Join combines all chars to string
编辑:
正如 @noahnu 所指出的,您可以使用map
进行此操作。可以使用以下标准代替标准的for循环:
str.split("").map(c => map[c] || c).join("");
或在ES5中:
str.split("").map(function(c){ return map[c] || c}).join(""));
这将使要迭代的当前字符为值map[c]
,如果它是undefined
的求值结果为false
,然后将使用c
代替。
答案 1 :(得分:0)
您似乎正在执行此操作– https://www.mehtanirav.com/qwerty-werty/
字符串中的字母映射到相应的键盘键并移动,以使Q变为P,W变为Q,依此类推。通过将所有班次存储在字典中,我们可以遍历字符串的字符,并将对应的映射字母附加到新字符串上。
const keyboard = {
q:'p',w:'q',e:'w',r:'e',t:'r',y:'t',u:'y',i:'u',o:'i',p:'o',
a:'l',s:'a',d:'s',f:'d',g:'f',h:'g',j:'h',k:'j',l:'k',
z:'m',x:'z',c:'x',v:'c',b:'v',n:'b',m:'n',
Q:'P',W:'Q',E:'W',R:'E',T:'R',Y:'T',U:'Y',I:'U',O:'I',P:'O',
A:'L',S:'A',D:'S',F:'D',G:'F',H:'G',J:'H',K:'J',L:'K',
Z:'M',X:'Z',C:'X',V:'C',B:'V',N:'B',M:'N'
}
function qwertyWerty(str) {
let newStr = '';
for(const char of str) {
newStr += keyboard[char] || char
}
return newStr;
}
console.log(qwertyWerty("hello world"));
console.log(qwertyWerty("Hello World"));
答案 2 :(得分:-1)
这很简单。
h
至g
,e
至w
,依此类推。.split
创建一个由字符串组成的字符数组。ARRAY.map(KEY => VALUE)
创建一个具有相应字符新值的新数组。ARRAY.join("")
将列表转换为字符串。这是代码段。希望这会有所帮助。
var string = "hello world"; // initial String
var dictionary = {'h': 'g', 'e': 'w', 'l': 'k', 'o': 'i', 'w': 'q', 'r': 'e', 'd': 's'};
var old_array = string.split(""); // you'll get an array of characters
var new_array = old_array.map(c => dictionary[c] || c);
var new_string = new_array.join("");
console.log(new_string); // Join combines all chars to string