我试着把整个句子分解成相反的单词,在这种情况下,为什么我们用let i = splittedText.length-1而不是let i = splittedText.length? 为什么要减1?

const wordSplit = (text) => {
    let splittedText = text.split(" ");
    let reversedWords = [];
    for(let i = splittedText.length-1; i>=0; i--){
        let ele = splittedText[i];
        reversedWords.push(ele);
    }
    const result = reversedWords.join(" ");
    return result;
};

const myWord = "I will solve the problem";
console.log( wordSplit(myWord));

推荐答案

在Java脚本中,数组是零索引的.当您有一个包含3个元素的数组时,它的长度将是3,但元素的索引将是0、1、2.如果您使用i = array.length,那么在循环的第一次迭代中,您将try 访问索引3处的元素,而索引3并不存在,并且会给您一个"索引超出界限"的错误.

为了说明,让我们看看这个长度为3的数组:

value a b c
index 0 1 2
array[0] = a
array[1] = b
array[2] = c
array[3] = ???

Javascript相关问答推荐

React Hooks中useState的同步问题

仅针对RTK查询中的未经授权的错误取消maxRetries

给定一个凸多边形作为一组边,如何根据到最近边的距离填充里面的区域

如何从调整大小/zoom 的SVG路径定义新的d属性?""

变量的值在Reaction组件中的Try-Catch语句之外丢失

覆盖TypeScrip中的Lit-Element子类的属性类型

为什么我的getAsFile()方法返回空?

查询参数未在我的Next.js应用路由接口中定义

为什么客户端没有收到来自服务器的响应消息?

当我点击一个按钮后按回车键时,如何阻止它再次被点击

react -原生向量-图标笔划宽度

如何通过Axios在GraphQL查询中发送数组

使用Perl Selify::Remote::Driver执行Java脚本时出错

使用Java脚本替换字符串中的小文本格式hashtag

在每次重新加载页面时更改指针光标

Reaction路由v6.4+数据API:重试加载程序而不显示错误

浮动标签效果移除时,所需的也被移除

单击子按钮时将活动切换类添加到父分区

观察子组件中的@Output事件emits 器?

如何在不获取其子元素的文本内容的情况下获取元素的文本内容?