将数组转换为jquery id

时间:2017-08-17 08:44:40

标签: javascript arrays return

您好我试图使用#id在数组中使用ID转换我的数组。 但我只得到一个回报,我不知道为什么?我是100%,我没有使用return语句,但我不能让它工作

        function convortToJquery(e) {

            for(var i = 0;i <= e.length;i++){
                var jqueryArray = [];

                if(!e[i]){
                    return jqueryArray;
                }else{
                    jqueryArray = "#"+e[i];
                }
            }
        }

编辑:

       var jArrayText = convortToJquery(textWord);

4 个答案:

答案 0 :(得分:2)

假设textWord是一个字符串数组,您的函数是为每个条目创建一个 new 数组。您只想创建一个新数组。还强烈建议不要使用超过数组末尾的模式,并依赖!e[i]来决定从函数返回。不需要那种东西,它通过奇怪的方式引入维护问题。

对代码的最小修复将如下所示(但请继续阅读):

function convortToJquery(e) {
    var jqueryArray = [];                   // Do this once at the beginning
    for (var i = 0; i < e.length; i++) {    // <, not <=
        jqueryArray[i] = "#" + e[i];        // Put the entry in the array
    }
    return jqueryArray;
}

但是:这正是Array#map的用途:

function convortToJquery(array) {
    return array.map(function(entry) {
        return "#" + entry;
    });
}

map调用为数组中的每个条目提供一次的回调,从回调返回的内容构建一个新数组。

在ES2015 +环境中(或通过转换),它更简洁:

function convortToJquery(array) {
    return array.map(e => "#" + e);
}

或者,如果您可以使用const(或let)和函数表达式而不是完整的function函数(具有此功能并不需要):

const convortToJquery = array => array.map(e => "#" + e);

答案 1 :(得分:0)

您的代码不正确。在for循环中,e[i]总会有一个值。所以你应该在循环完成后返回。同时在顶部初始化数组,以便在每个循环中都不会启动它

function convortToJquery(e) {
  var jqueryArray = [];
  for (var i = 0; i < e.length; i++) {  
      jqueryArray.push("#" + e[i]);
  }
  return jqueryArray;
}
  

答案 2 :(得分:0)

你所要做的就是操纵数组的每个元素

function convortToJquery(e) {
  return  e.map(function(item){
    return '#'+item
    });
} 

&#13;
&#13;
var textWord = [1,2,3,4];
function convortToJquery(e) {
      return  e.map(function(item){
        return '#'+item
        });
    } 
    
    document.write(convortToJquery(textWord));
&#13;
&#13;
&#13;

答案 3 :(得分:-2)

你没有把任何东西推进阵列

jqueryArray.push(“#”+ e [i];)