我有一组通过阅读文本文件创建的邮政编码。我希望逐步遍历数组中的每个项目并使其为小写,并删除任何空格。到目前为止,我有以下内容:
var postCodesCovered = new Array();
$.get('postcodes.txt', function(data){
postCodesCovered = data.split('\n');
});
$.each(postCodesCovered , function(){
$(this).toLowerCase().replace(/\s+/g, '');
});

这似乎没有做到这一点。是因为我没有将值设置回数组吗?
答案 0 :(得分:3)
由于.get()
为async
,您需要在success
回调中移动代码,并且不需要使用this
。
var postCodesCovered;
$.get('postcodes.txt', function(data) {
postCodesCovered = data.split('\n');
$.each(postCodesCovered, function(index, value) {
postCodesCovered[index] = value.toLowerCase().replace(/\s+/g, '');
});
// Do something with the data here
});
答案 1 :(得分:2)
@satpal是对的 - 您需要在成功回调中处理您的列表。每个都将遍历数组项,但您希望将它们转换为小写,因此map是更好的选择。 Map采用数组并转换每个返回新数组的项。有关详细信息,请参阅jQuery.map文档。
var postCodesCovered = [];
$.get('postcodes.txt', function(data) {
postCodesCovered = $.map(data.split('\n'), function(value, index) {
return value.toLowerCase().replace(/\s+/g, '');
});
});
答案 2 :(得分:0)
这是......
var postCodesCovered = new Array();
$.each(postCodesCovered , function(idx, val){
postCodesCovered[idx] = $(this).toLowerCase().replace(/\s+/g, '');
});

答案 3 :(得分:0)
function convertArray(CapsArray){
lowcaseArray = [];
for (var i = 0; i <CapsArray.length; i++) {
lowcaseArray.push(CapsArray[i].replace(/\s+/g,"").toLowerCase());
}
return lowcaseArray;
}
上述功能应该可以胜任。
var YourLowCaseArray = convertArray(YourCapsArrayHere);