我有一个数组列表:
0: "1 Trenchard Road, , , , Saltford, Bristol, Avon"
1: "10 Trenchard Road, , , , Saltford, Bristol, Avon"
2: "11 Trenchard Road, , , , Saltford, Bristol, Avon"
3: "12 Trenchard Road, , , , Saltford, Bristol, Avon"
我想删除中间的逗号:
, , ,
我正在使用Lodash,并使用_.compact()
查看但是这似乎并没有让我到任何地方。
让我知道你的想法
更新
var addressArray = getAddressData.data.Addresses;
scope.items = _.compact(addressArray);
console.log(scope.items);
答案 0 :(得分:2)
您可以在RegEx中使用JavaScript Array#map
删除额外的逗号。
arr.map(e => e.replace(/(,\s*)+/, ','));
ES5等效:
arr.map(function (e) {
return e.replace(/(,\s*)+/, ',');
});
正则表达式(,\s*)+
将搜索由它们之间的任意数量的空格分隔的一个或多个逗号。
var arr = ["1 Trenchard Road, , , , Saltford, Bristol, Avon", "10 Trenchard Road, , , , Saltford, Bristol, Avon", "11 Trenchard Road, , , , Saltford, Bristol, Avon", "12 Trenchard Road, , , , Saltford, Bristol, Avon"];
arr = arr.map(e => e.replace(/(,\s*)+/, ', '));
console.log(arr);
document.getElementById('result').innerHTML = JSON.stringify(arr, 0, 4);
<pre id="result"></pre>
答案 1 :(得分:1)
您可以通过昏迷,filter空白和加入进行拆分。
var str = "1 Trenchard Road, , , , Saltford, Bristol, Avon";
var result = str.split(',').filter(x => x.trim()).join()
console.log(result); // 1 Trenchard Road, Saltford, Bristol, Avon
注意:使用ES6 arrow function(=>
)如果它在您的环境中不起作用,您可以将它替换为经典function
。
map函数的完整示例:
let arr = [
'1 Trenchard Road, , , , Saltford, Bristol, Avon',
'10 Trenchard Road, , , , Saltford, Bristol, Avon',
'11 Trenchard Road, , , , Saltford, Bristol, Avon',
'12 Trenchard Road, , , , Saltford, Bristol, Avon'
];
let result = arr.map(i => i.split(',').filter(x => x.trim()).join());
ES5等效:
var result = arr.map(function(i) {
return i.split(',').filter(function(x) {
return x.trim();
}).join();
});
答案 2 :(得分:0)
使用数组过滤功能
["1 Trenchard Road", , , , "Saltford", "Bristol", "Avon"].filter(function(i){return i})
答案 3 :(得分:0)
请在下面找到JS中的解决方案:
for(var i=0;i<arr.length;i++) {
if(arr[i].indexOf(',') > -1) {
console.log(arr[i].replace(/,/g,''));
}
}