[英]how do i return a modified value into an array
我正在研究问题,希望有人可以指出正确的方向。 问题是在句子中找到最长的单词,然后以大写的最长单词返回该句子。 到目前为止,我已经能够找到句子中最长的单词并将其大写,但是我无法返回包含大写单词作为其一部分的句子。
var capitalize = document.getElementById('capitalize'); var myOutput = document.getElementById('output'); var myInput; capitalize.addEventListener('click',function(){ myInput = document.getElementById('input').value; mySplitInput = myInput.split(' '); var longest=''; for(var i = 0 ; i < mySplitInput.length; i++){ if( mySplitInput[i].length > longest.length){ longest = mySplitInput[i].toUpperCase(); } }; var content = document.createTextNode(longest); myOutput.appendChild(content); });
<input type="input" id="input"> <button id="capitalize">capitalize</button> <div id="output"></div>
存储最长单词的索引以及单词本身。 然后,您可以使用该索引的大写字母覆盖该单词,并将拆分后的句子与空格粘在一起。
var capitalize = document.getElementById('capitalize'); var myOutput = document.getElementById('output'); var myInput; capitalize.addEventListener('click',function(){ myInput = document.getElementById('input').value; mySplitInput = myInput.split(' '); var longestIndex, longest=''; for(var i = 0 ; i < mySplitInput.length; i++){ if( mySplitInput[i].length > longest.length){ longestIndex = i; longest = mySplitInput[i].toUpperCase(); } }; mySplitInput[longestIndex] = mySplitInput[longestIndex].toUpperCase(); var content = document.createTextNode(mySplitInput.join(' ')); myOutput.appendChild(content); });
<input type="input" id="input"> <button id="capitalize">capitalize</button> <div id="output"></div>
您也可以将现有的最长值放入变量中,并用大写的最长值替换。
var capitalize = document.getElementById('capitalize'); var myOutput = document.getElementById('output'); var myInput; capitalize.addEventListener('click',function(){ myInput = document.getElementById('input').value; mySplitInput = myInput.split(' '); var longest=''; var existing =''; for(var i = 0 ; i < mySplitInput.length; i++){ if( mySplitInput[i].length > longest.length){ longest = mySplitInput[i].toUpperCase(); existing= mySplitInput[i]; } }; var content = document.createTextNode(myInput.replace(existing,longest)); myOutput.appendChild(content); });
<input type="input" id="input"> <button id="capitalize">capitalize</button> <div id="output"></div>
一个更简单的解决方案!
var capitalize = document.getElementById('capitalize');
var myOutput = document.getElementById('output');
var myInput;
capitalize.addEventListener('click',function(){
myInput = document.getElementById('input').value;
mySplitInput = myInput.split(' ');
var longest='';
var newString= '';
for(var i = 0 ; i < mySplitInput.length; i++){
if( mySplitInput[i].length > longest.length){
longest = mySplitInput[i].toUpperCase();
if(myInput.includes(mySplitInput[i])){
newString = myInput.replace(mySplitInput[i], longest);
}
};
var content = document.createTextNode(newString);
myOutput.appendChild(content);
});
您可以在此处删除一些变量和一些检查,但这完全取决于您。
尝试这个:
var longest=''; var index =0;
for(var i = 0 ; i < mySplitInput.length; i++){
if( mySplitInput[i].length > longest.length){
longest = mySplitInput[i].toUpperCase();
index = i;
}
};
var sentence =longest;
for(i=index-1;i >=0; i--){
if(mySplitInput[i] === '.')
break;
sentence=mySplitInput[i] + " "+sentence;
}
for(i=index+1;i < mySplitInput.length; i++){
if(mySplitInput[i] === '.')
break;
sentence+=" "+mySplitInput[i];
}
sentence += '.';
我添加了一个index
变量以跟踪longest
单词的索引,然后使用for
循环重新创建该句子for
循环旨在从最长单词的索引前后移动,直到找到一个'。'(句点)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.