从包含字符串的第一个元素到包含另一个元素的最后一个元素获取数组的切片

史密斯

我正在尝试从在这种情况下包含这些字母的第一个元素到在这种情况下包含这些字母的最后一个元素中获取字符串数组的一部分。

首先,输入是一个句子,因此我将其按空格分隔。然后,我试图从indexOf('IN')直到lastIndexOf('NN')获取一个切片,但是正在获取一个空数组。

这是我尝试过的:

var str = "weather(NN) in(IN) boston(NN)"
str.split(' ').slice(str.split(' ').indexOf('IN'), str.split(' ').lastIndexOf('NN')+1);

我如何获得它,["in(IN)", "boston(NN)"]或者如果字符串是“ weather(NN)in(IN)波士顿(NN)massachusetts(NN)”,我得到了["in(IN)", "boston(NN)", "massachusetts(NN)"]吗?

古法

indexOflastIndexOf方法不看在数组项子,他们只认准完整项目的比赛。

您可以使用reducereduceRight方法来查找数组:

var str = "weather(NN) in(IN) boston(NN)";

var arr = str.split(' ');
var first = arr.reduce(function(p, c, i){
  return p != -1 ? p : c.indexOf('IN') != -1 ? i : -1;
}, -1);
var last = arr.reduceRight(function(p, c, i, a){
  return p != -1 ? p : c.indexOf('NN') != -1 ? i : -1;
}, -1);    
arr = arr.slice(first, last + 1);

演示:http : //jsfiddle.net/8WS3g/

注意:Array.reduceArray.reduceRight方法仅在IE9和更高版本中受支持。问题中使用Array.indexandArray.indexOf方法也是如此,因此不会改变要求。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我如何切片一个numpy字符串数组的每个元素?

字符串拆分返回一个包含两个元素而不是一个元素的数组

Python切片列表中的第一个和最后一个元素

golang按第一个元素对切片进行切片

如何获得切片的最后一个元素?

分割字符串并获取最后一个元素

选择另一个元素之后的第一个出现的元素

访问Vec或切片的最后一个元素

使用powershell分割字符串以获取第一个和最后一个元素

数组第一个元素

获取包含另一个元素的数组中元素的索引

如何从切片复制最后一个元素

python pandas get列的第一个元素包含一个字符串

使用lodash检查数组元素是否包含另一个数组元素的子字符串

从最后一个元素到第一个元素添加到数组

如何从另一个向量的另一个第一个元素减去向量中的第一个元素?

获取拆分字符串的最后一个元素

如何在terraform的嵌套列表中切片第一个元素

从第一个元素中获取特定字符串-数组

保留数组的第一个索引元素和最后一个索引元素

向后切片元组-如何处理获取第一个元素?

查找包含“-”的数组的第一个元素

减少数组到第一个和最后一个元素的元组?

如何添加一个空字符串作为现有数组的第一个元素?

将字符串数组的一个元素复制到另一个 java

如何将对向量中的对的第一个元素(字符串)与另一个字符串进行比较?

从第 n 个元素切片到第 n 个元素,但考虑它离开的最后一个索引

函数返回包含子字符串所有元素的第一个可能的子字符串

如何仅获取字符串中包含的列表中的第一个元素?