Jquery - 从分隔字符串创建一个数组,然后评估其值

Jquery - 从分隔字符串创建一个数组,然后评估其值

问题描述:

我有这个问题,我真的不能解决。Jquery - 从分隔字符串创建一个数组,然后评估其值

我有这个字符串“B01,B20,B03,”

我想创建使用“”作为分隔符 然后删除最后一个元件(这将是空白的)一个jQuery数组off这个字符串然后针对 阵列的每个值发出警报。

喜欢的东西...

var theString = "B01, B20, B03, "; 

    var theArray = (theString, ','); 

    theArray = remove_last_element; (??) 

    $('theArray').each(function() { 

     alert(theArray[?].value); 

    }); 

任何提示?

谢谢!

var theString = "B01, B20, B03, "; 

$.each(theString.split(",").slice(0,-1), function(index, item) { 
    alert(item); 
}); 

让我知道如果您有任何问题。

+0

你为什么把数组放在一个jQuery对象? – Guffa

+0

@Guffa我以为他想要一个jQuery对象的问题中的措辞。 –

+0

很好,我最终选择了这种方式,因为它非常小巧而且美观!非常感谢您的帮助 !。 @Guffa,我是一个总新手我还在学习:) – matteo

var theString = "B01, B20, B03, ", 
    theArray = theString.split(', '); 

theArray.pop(); 
$(theArray).each(function() { 
    alert(this); 
}); 
+0

非常感谢您花时间帮助我 – matteo

你不需要这个jQuery。使用String.prototype.split分割字符串,然后用for循环。

var theString = "B01, B20, B03, ", 
    bits = theString.split(', ').slice(0, -1); // split the string and remove the last one 

for (var i = 0; i < bits.length; i++) { 
    alert(bits[i]); 
} 
+0

我是一个总新手:)我想我需要使用jQuery,因为所有其他脚本使用它。无论如何,你非常乐意抽出时间帮助我。 – matteo

我在下面使用的唯一jquery是“修剪”值,看看它是否为空。否则,我使用拆分和拼接(普通ol'javascript)。

var theString = "B01, B20, B03, "; 
var theArray = theString.split(','); 
for(i=0; i<theArray.length; i++) { 
    // check if any array element is empty, if so, take it out of the array 
    if ($.trim(theArray[i]) == "") 
    theArray.splice(i, 1); // remove element since it's blank 
} 

// now you can iterate over the "real" values of the array 
$.each(theArray, function(i, value) { 
    alert(value); 
}); 
+0

非常感谢您花时间帮助我。 – matteo

var str = "B01, B20, B03, "; 

$.each(str.split(','), function(i, val) { 
    val = $.trim(val); 
    alert(val); 
}); 

cleanString = function(str) { 
    return $.grep(str.split(','), function(elem) { 
     return ($.trim(elem) !== '') 
    }); 
} 

此功能将通过逗号与所有空格取出返回带有所有分割的阵列。检查出$.grep

用法

cleanString("B01, B20, B03, "); 

警报阵列应该是足够简单。这只是迭代返回数组的问题。

var arr = cleanString("B01, B20, B03, "); 
    $.each(arr, function(index, value) { 
     alert(value); 
    }); 

没有“jQuery数组”这样的东西。你使用一个Javascript数组。

您不能只是将字符串转换为数组,因为它包含逗号分隔值。你必须使用的东西来解析字符串,这将是split方法在这种情况下:

var theString = "B01, B20, B03, "; 
var theArray = theString.split(", "); 

这将产生四个元素的数组,因为有一个尾部分隔,这样你就可以检查这一点,删除它:

if (theArray.length > 0 && theArray[theArray.length - 1].length == 0) { 
    theArray.pop(); 
} 

然后,您可以使用纯Javascript或jQuery方法循环数组。在普通的JavaScript看起来像这样:

for (var i = 0; i < theArray.length; i++) { 
    alert(theArray[i]); 
} 

使用jQuery的方法是这样的:

$.each(theArray, function(index, item) { 
    alert(item); 
}); 

您也可以跳过取出物品的步骤,只是检查在环空的项目:

var theString = "B01, B20, B03, "; 
var theArray = theString.split(", "); 
for (var i = 0; i < theArray.length; i++) { 
    if (theArray[i].length > 0) { 
    alert(theArray[i]); 
    } 
}