我需要使用不带'split'功能的JavaScript对单词进行句子拆分,并使用Alert函数返回每个单词。所以,我有这段代码,但它不起作用。我是编程的新手,请帮我解决这个问题。
var str = 'Lorem Ipsum Lorem Ipsum';
var new_str = ' ';
for(var i=0;i<str.length;i++) {
if(str == new_str) {
alert( new_str );
new_str = '';
}
}
答案 0 :(得分:2)
更简洁的版本:
var str = 'Lorem Ipsum Lorem Ipsum';
var word = '', result = []
for (const char of str) {
word = char == ' ' ? (result.push(word), "") : (word + char);
}
result.push(word);
console.log(result)
我们使用的是for
的简短版本,主要是三元运算符来处理逻辑,何时将单词压入结果数组准备就绪以及何时继续连接。
另一个没有最后一个result.push(word)
的版本如下所示:
var str = 'Lorem Ipsum Lorem Ipsum';
var word = '', result = []
for(const i in str) {
word = str[i]==' ' || (+i==str.length-1) ? (result.push((word+str[i]).trimEnd()), '') : (word+str[i])
}
console.log(result)
请注意与for(const char **of** str)
和for(const i **in** str)
的区别……一个给您实际字符,而另一个给您实际索引。
答案 1 :(得分:0)
更新
var str = 'Lorem Ipsum Lorem Ipsum';
var new_str = '';
for(var i=0;i<str.length;i++) {
if(str[i] == ' ') {
alert( new_str );
new_str = '';
} else {
new_str += str[i];
}
}
答案 2 :(得分:0)
jacoco:report-aggregate
如果var str = 'Lorem Ipsum Lorem Ipsum';
var new_str = ' ';
var word = '';
for(var i=0;i<str.length;i++) {
if(str[i] == new_str) {
alert( word );
word = '';
}
else {
word += str[i]
}
}
alert(word)
不是空格字符串,请将其添加到str[i]
,否则提醒它并清除word
答案 3 :(得分:0)
var str = "Lorem Ipsum Lorem Ipsum";
var item = '';
var last_item = 0;
for(var i=0;i<str.length;++i){
if(str[i]==" "){
item = str.slice(last_item,i);
if(i+1<str.length){
last_item = i+1;
}
alert(item);
}
}
item = str.slice(last_item,str.length);
alert(item);
此代码段已经过测试并且运行良好;) 祝您学习顺利
答案 4 :(得分:0)
您可以编写这样的函数,也可以用alert替换console.log:
让字符串=“你好吗”;
let getWordsFromString = (string) =>
{
let word = "";
for(let i=0;i<string.length;++i)
{
if(string.charAt(i) === ' ')
{
console.log(word);
word = "";
while(i<string.length-1 && string.charAt(i+1) === ' ') ++i;
}
else
{
word += string.charAt(i);
}
}
if(word.length>0)
console.log(word);
}
getWordsFromString(string);
答案 5 :(得分:-1)
var str = 'Lorem Ipsum Lorem Ipsum';
var new_str = '';
for(var i=0;i<str.length;i++) {
if(str[i] == ' ') { // Problem 1) you need to check against space
alert( new_str );
new_str = '';
} else { // Problem 2) you need to append character to new_str
new_str += str[i];
}
}
alert( new_str ); // Problem 3) you need the last alert for end of string
答案 6 :(得分:-2)
const str = 'Lorem Ipsum Lorem Ipsum';
// The first way is RegEx
const array = str.match(/\w+/g);
array.forEach(alert);
// The second way is reduce
let index = 0;
const result = Array.from(str)
.reduce((acc, char) => {
acc[index] = acc[index] || [];
if (char !== ' ') {
acc[index].push(char);
return acc;
}
index++;
return acc;
}, [])
.map((wordArray) => wordArray.join(''));
result.forEach(alert);