Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaScript中分割数字?_Javascript - Fatal编程技术网

如何在JavaScript中分割数字?

如何在JavaScript中分割数字?,javascript,Javascript,我有以下代码片段 var code = 895804220010013030; var last = code.slice(-2); var n = last.includes(00, 01, 10, 11, 20, 21, 30, 31 ); if (n===true) { alert(n) } else { alert('false') } 但它调用了语法错误,唯一有效的方法是将引号放在数字上 var code = 895804220010013030; 但我需要运行它而不加引号

我有以下代码片段

var code = 895804220010013030;
var last = code.slice(-2);
var n = last.includes(00, 01, 10, 11, 20, 21, 30, 31 );

if (n===true) {
  alert(n)
} else {
 alert('false')
}
但它调用了语法错误,唯一有效的方法是将引号放在数字上

var code = 895804220010013030;
但我需要运行它而不加引号。

更改此选项:

var last = code.slice(-2);
为此:

var last = String(code).slice(-2);
或者这个:

var last = code.toString().slice(-2);
为什么?

因为是
字符串的方法
不是
数字
。它提取字符串的一部分并将其作为新字符串返回,而不修改原始字符串

更新

根据第一条评论

var code = 130031;
var last = code.toString().slice(-2);
var n = [00, 01, 10, 11, 20, 21, 30, 31].includes(last);
有关更多信息,请阅读编辑:

我必须编辑答案的开头,因为我刚刚意识到您试图在
code
变量中捕获的数字实际上大于JS中可用的值

不是在数字类型上定义的方法。您可以选择将代码存储为
字符串
,这将使您的生活更轻松

var code = '895804220010013030';
var last = Number(code.slice(-2));
var n = [00, 01, 10, 11, 20, 21, 30, 31].includes(last);

if (n===true) {
  alert(n)
} else{
 alert('false')
}
此外,还有更好的方法编写
if else
,因为
n
的值将是布尔值,因为
includes
将始终返回true或false

includes()方法确定数组的条目中是否包含某个值,并根据需要返回true或false

或者

if (n) {
  alert(n);
} else {
  alert(false);
}
或者简单地说

alert(n);

如果您的根关注点是创建不带引号的字符串:以下是一种技巧:

var x=String(/895804220010013030/);
x=x.子串(1,x.长度-1);
x;
您可以检查长度,以确定其是否正确


从一篇老帖子的答案来看:

原因编号没有
切片功能。这就是为什么你会犯这样的错误。另外,
includes
someString一起使用。includes(elementToSearch,fromIndex)
此签名。
slice
方法仅为字符串和类似数组的对象定义,不为数字。如果不使用字符串,代码将永远无法工作(正如@pai.not.pi所指出的,这里有一个测试来说明原因:
var x=895804220010013030;console.log(x);
console.log(895804220010013030==895804220010013000)
(其中895…030==895…000)不带引号的字符串:include正在生成错误。在本例中,可以看到它没有检测数字31函数myFunction(){var code=130031;var last=code.toString().slice(-2);alert(last);var n=last.includes(00,01,10,11,20,21,30,31);alert(n)if(n==true){alert(n)}否则{alert('false')}@MenaiAlaEddine Aladdin haha没有意识到:D谢谢,已经更新了我的答案:)include正在生成一个错误,该错误没有正确地获取数字。在本例中,可以看到它没有检测到我根据当前问题回答的31号函数MyFunction,但它创建了我的语法错误。您对
include
有另一个问题。请阅读有关转换为字符串的另一个选项的详细信息:
var str=number+“”;
@freedomn-m,是的,但是JS中的强制和解析有区别吗?