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

时间:2015-04-19 02:08:56

标签: javascript arrays node.js

我有以下数组:

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”。

3 个答案:

答案 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]);
}