Javascript 使用数组索引搜索字符串字母
我今天要解决一个小难题:Javascript 使用数组索引搜索字符串字母,javascript,arrays,string,foreach,Javascript,Arrays,String,Foreach,我今天要解决一个小难题: var str = "hzuelgdlbo"; var arr = [0, 3, 4, 7, 9]; console.log(res); => "hello" 我用一个简单的forEach解决了这个问题,现在我问我是否有更简单的解决方案(自定义排序) forEach: idz.forEach(function(idx){ var res = []; res.push(str[idx]); console.log(res.jo
var str = "hzuelgdlbo";
var arr = [0, 3, 4, 7, 9];
console.log(res); => "hello"
我用一个简单的forEach解决了这个问题,现在我问我是否有更简单的解决方案(自定义排序)
forEach:
idz.forEach(function(idx){
var res = [];
res.push(str[idx]);
console.log(res.join(''));
});
一种解决方案可能是在数组上循环并在字符串上执行substr
干杯使用
或者类似的东西
您可以将两者都包装在console.log/alert中以输出值。使用 或者类似的东西
您可以将两者包装在console.log/alert中以输出值。此解决方案创建字母和数组,并仅在末尾将它们转换为字符串。它还可以在不使用外部变量的情况下返回结果:
arr.reduce(function (word, letterIndex) {
word.push(str[letterIndex]);
return word;
}, []).join('');
此解决方案创建字母的数组,并仅在末尾将其转换为字符串。它还可以在不使用外部变量的情况下返回结果:
arr.reduce(function (word, letterIndex) {
word.push(str[letterIndex]);
return word;
}, []).join('');
您可以
过滤字符串中的元素(首先转换为数组):
您可以过滤字符串中的元素(首先转换为数组):
使用地图:
使用地图:
arr.reduce(function (word, letterIndex) {
word.push(str[letterIndex]);
return word;
}, []).join('');
var str = "hzuelgdlbo".split('').filter(function(el, i, a) {
if (arr.indexOf(i) > -1) return el;
}).join('');
var str = "hzuelgdlbo";
var numbers = [0, 3, 4, 7, 9];
mapp = function(_array,_str){
return (_array.map(function(n){ return _str[n]; })).join('');
};
console.log(mapp(numbers,str));