您好我试图使用#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);
答案 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
});
}
var textWord = [1,2,3,4];
function convortToJquery(e) {
return e.map(function(item){
return '#'+item
});
}
document.write(convortToJquery(textWord));
&#13;
答案 3 :(得分:-2)
你没有把任何东西推进阵列
jqueryArray.push(“#”+ e [i];)