如何解决关于为什么 lastIndexOf() 在这种情况下返回 -1 的非常简单的问题
我有这段字符串,我想在其中获取“n”的最后一个索引,但不是返回 200+ 或返回 -1 的其他值。我没有找到它。这是为什么?
s="2\n8\n6\n2\n12\n3\n4\n11\n1\n1\n11\n9\n1\n14\n8\n9\n2\n5\n5\n12\n6\n0\n10\n0\n0\n6\n6\n8\n0\n11\n14\n12\n12\n9\n13\n12\n0\n4\n14\n5\n11\n10\n14\n1\n6\n6\n5\n0\n4\n3\n8\n8\n12\n13\n4\n7\n2\n7\n1\n2\n9\n4\n5\n11\n12\n11\n11\n8\n11\n5\n6\n12\n13\n7\n11\n10\n10\n12\n11\n13\n14\n11\n3\n10\n3\n8\n7\n14\n12\n14\n8\n7\n14\n11\n8\n14\n10\n6\n12\n7"
console.log(s.lastIndexOf("n"))
解决方法
字符串中的字符都不是文字 n
字符 - 相反,您使用的是 \n
,它是换行符的转义序列,例如
const str = `
`;
是由换行符组成的字符串,相当于
const str = '\n';
如果您希望字符串由文字反斜杠和文字 n
组成,请使用 String.raw
禁用转义序列。
const s = String.raw`2\n8\n6\n2\n12\n3\n4\n11\n1\n1\n11\n9\n1\n14\n8\n9\n2\n5\n5\n12\n6\n0\n10\n0\n0\n6\n6\n8\n0\n11\n14\n12\n12\n9\n13\n12\n0\n4\n14\n5\n11\n10\n14\n1\n6\n6\n5\n0\n4\n3\n8\n8\n12\n13\n4\n7\n2\n7\n1\n2\n9\n4\n5\n11\n12\n11\n11\n8\n11\n5\n6\n12\n13\n7\n11\n10\n10\n12\n11\n13\n14\n11\n3\n10\n3\n8\n7\n14\n12\n14\n8\n7\n14\n11\n8\n14\n10\n6\n12\n7`;
console.log(s.lastIndexOf('n'))
如果您希望字符串由换行符组成,并且您想检查换行符的最后一个索引,请将换行符传递给 lastIndexOf
。
s="2\n8\n6\n2\n12\n3\n4\n11\n1\n1\n11\n9\n1\n14\n8\n9\n2\n5\n5\n12\n6\n0\n10\n0\n0\n6\n6\n8\n0\n11\n14\n12\n12\n9\n13\n12\n0\n4\n14\n5\n11\n10\n14\n1\n6\n6\n5\n0\n4\n3\n8\n8\n12\n13\n4\n7\n2\n7\n1\n2\n9\n4\n5\n11\n12\n11\n11\n8\n11\n5\n6\n12\n13\n7\n11\n10\n10\n12\n11\n13\n14\n11\n3\n10\n3\n8\n7\n14\n12\n14\n8\n7\n14\n11\n8\n14\n10\n6\n12\n7"
console.log(s.lastIndexOf("\n"))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。