我有以下数组:
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”,“x y”的项目(两组字符之间的空格)和“x y z”(w三组字符之间的两个空格。
我想从第三组元素中删除y(以便“x y z”变为“x z”)。上面显示的arr1就是一个例子 - 我正在使用的数组有几百个条目。在上面的例子中,我希望“aava beve。cavbr”在arr1的第三个元素中成为“aava cavbr”。
答案 0 :(得分:2)
我根据您的问题做出假设,这些始终只有位于嵌套数组的第一位。
// loop over the inner arrays
arr1.forEach(function(innerArr) {
var parts = innerArr[0].split(' ');
innerArr[0] = parts[0] + ' ' + parts[ parts.length - 1 ];
});
如果这些元素永远不会有额外的空格(例如它总是" xy z"而不是" xy其他一些带有空格的东西z"那么你可以只是做innerArr[0].replace(/\s[^ ]\s/, '');
,但我不清楚数据的确切形式。
编辑:
根据新的数据格式,您可以了解更多信息。
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(',');
});
答案 1 :(得分:0)
如果我理解你的问题,可能是这样的代码:
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);
});
答案 2 :(得分:0)
在我看来,你想要得到第一个和最后一个值,并用空白字符分隔它们。这是我能想到的最简单的方法:
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]);
}