计算数组中每个元素的长度

时间:2017-11-06 18:56:18

标签: javascript arrays loops

我试图在较长的文字中找到每个单词的长度。每个单词的长度需要在函数末尾的数组中返回。

我认为应该使用两个循环;一个用于将文本拆分为单词,另一个用于计算每个单词的长度。但我不能让这个工作......

如果您对我的问题有一些很棒的解决方案,请帮忙!顺便说一下,我对JavaScript很陌生,所以请耐心等待。

2 个答案:

答案 0 :(得分:0)

返回包含单词及其长度的对象数组:

var sentence = 'Lorem ipsum dolor sit amet consectetur adipiscing elit';
var arr = sentence.split(' ').map(function(item){
    return {
        word: item,
        length: item.length
    }
});

希望它有所帮助!

答案 1 :(得分:0)

要将句子拆分为单词数组,请使用String.prototype.split(),在这种情况下,使用' '(空格)作为您要分离的内容。要遍历在过程中创建新数组的数组,请使用Array.prototype.map()。所以你的功能就像:

  

'你好!' .split('')。map((word)=>(word.length));

但是坚持,为什么返回`[1, 6 ]?那么,你的功能目前还没有办法知道"!"不是"那里"。

的一部分

我不是您希望如何处理这个问题。我可以看到它返回[1, 5][1, 5, 1]或将其保留为[1, 6]的论点。

如果你想要第一个选项,你可以编写一个正则表达式,如:

  

'你好!' .split(/ \ b \ W * /)。filter(布尔).map((word)=>(word.length));
  //' filter(布尔)'删除split()根据规范

插入的空字符串

虽然这会返回"超时"作为[4,3]

或您可以尝试的第二个选项:

  

'你好!' .split(/ \ b \ s * /)。map((word)=>(word.length));

虽然这会回归"我" m"为[1,1,1]。在这一点上,您只需要看一下正则表达式最适合您(这是一个单独的问题。)因为"一个单词何时开始和结束"有点主观。