我试图在较长的文字中找到每个单词的长度。每个单词的长度需要在函数末尾的数组中返回。
我认为应该使用两个循环;一个用于将文本拆分为单词,另一个用于计算每个单词的长度。但我不能让这个工作......
如果您对我的问题有一些很棒的解决方案,请帮忙!顺便说一下,我对JavaScript很陌生,所以请耐心等待。
答案 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]
。在这一点上,您只需要看一下正则表达式最适合您(这是一个单独的问题。)因为"一个单词何时开始和结束"有点主观。