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));