我有一个字符串,需要将输入的字符串转换为等效的北约代码。
例如输入字符串abc和获取alpha beta charlie
到目前为止,我已经完成了这个代码,我想比较一下一旦我有了每个字符,任何建议
let str = 'abc';
let res = '';
const codes = [
{
'a': 'alpha'
},
{
'b': 'beta'
},
{
'c': 'charlie'
}
];
for (let i = 0; i < str.length; i++) {
codes.find((item, index) => {
if (str[i] === item) {
console.log('found item', item[i]);
res = res + item;
}
});
}
console.log(res);
任何建议都会有帮助。
您甚至可以使用对象数组。但是您需要添加更多的逻辑来查找对象数组中的代码值。
let str = 'abc';
let res = '';
const codes = [
{
'a': 'alpha'
},
{
'b': 'beta'
},
{
'c': 'charlie'
}
];
function getCode(codes, char){
return Object.values(codes.find(e=>Object.keys(e).indexOf(char)!=-1))[0];
}
res = getCode(codes, str[0]);
for (let i = 1; i < str.length; i++) {
res = res + " " + getCode(codes, str[i]);
}
console.log(res); //alpha beta charlie
您可以创建一个名为codes
的对象,该对象包含所有字母表字符及其等效的nato字符串,以及convert
函数,如下所示:
const codes = {'a': 'alpha', 'b': 'beta', 'c': 'charlie'};
function convert(str) {
return str.split('').map(code => codes[code]).join(' ');
}
console.log(convert('a')); //it will print alpha
console.log(convert('ab')); //it will print alpha beta
console.log(convert('abc')); //it will print alpha beta charlie