从数组中的元素修改空白元素

我有以下数组数组:

arr1= ["avd befe, bla, bla, bla, bla", "cveve devev, bla, bla, bla, bla", "aava beve. cavbr, bla, bla, bla, bla", "feve gyhyh, bla, bla, bla, bla", "ibtbt, bla, bla, bla, bla"] 

在我的例子中,我关注的是数组中的第一组字符。 这些可以包括格式为“x”,“xy”(两个字符组之间的空格)和“xyz”(三个字符组之间有两个空格)的项目。

我想从第三组元素中删除y(所以“xyz”变成“xz”)。 上面显示的arr1是一个例子 – 我正在使用的数组有两百个条目。 在上面的例子中,我想要“aava beve。cavbr”成为arr1中第三个元素的“aava cavbr”。

我正在根据你的问题作出假设,这些将始终只在嵌套数组中处于第一位。

 // loop over the inner arrays arr1.forEach(function(innerArr) { var parts = innerArr[0].split(' '); innerArr[0] = parts[0] + ' ' + parts[ parts.length - 1 ]; }); 

如果这些元素从来没有额外的空间(例如,它总是“xyz”,而不是“xy一些其他东西与空间z z”,那么你可以做innerArr[0].replace(/\s[^ ]\s/, '');但是我不清楚你的数据的确切forms。

编辑:

基于新的数据格式,这里是更多的东西。

 var newArr = arr1.map(function(val) { var parts = val.split(','); var words = parts[0].split(' '); if (words.length > 2) { parts[0] = words[0] + ' ' + words[ words.length - 1 ]; } return parts.join(','); }); 

如果我正确地理解你的问题,也许这样的代码:

 arr1.map(function(ele){ var current = ele[0].split(' '); var head = current.shift(); // head is first group var tail = current.pop(); // tail is last group // console.log(head.concat([' '],tail)); return head.concat([' '],tail); }); 

它看起来像你想要得到的第一个和最后一个值,并保持他们分开的空白字符。 这是我能想到的最简单的方法:

 var arr1 = ["avd befe, bla, bla, bla, bla", "cveve devev, bla, bla, bla, bla", "aava beve. cavbr, bla, bla, bla, bla", "feve gyhyh, bla, bla, bla, bla", "ibtbt, bla, bla, bla, bla"] function clean(str) { var foo = str.split(",")[0]; var bar = foo.substr(0, foo.indexOf(" ")) + foo.substr(foo.lastIndexOf(" ")); return str.replace(foo, bar); } for (var i = 0; i < arr1.length; i++) { arr1[i] = clean(arr1[i]); }