Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.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_Arrays_Data Structures - Fatal编程技术网

javascript数组中的字符串和数字有什么区别?

javascript数组中的字符串和数字有什么区别?,javascript,arrays,data-structures,Javascript,Arrays,Data Structures,我正在JavaScript中合并两个排序数组。当我用两个有数字的数组调用函数时,它工作得很好,但当我用字符串调用该函数时,它就不工作了。为什么? 函数合并到阵列(array1,array2){ 常数mergedArray=[]; 设array1Item=array1[0]; 设array2Item=array2[0]; 设i=1; 设j=1; if(array1.length==0){ 返回阵列2; } if(array2.length==0){ 返回阵列1; } while(array1项目

我正在JavaScript中合并两个排序数组。当我用两个有数字的数组调用函数时,它工作得很好,但当我用字符串调用该函数时,它就不工作了。为什么?

函数合并到阵列(array1,array2){
常数mergedArray=[];
设array1Item=array1[0];
设array2Item=array2[0];
设i=1;
设j=1;
if(array1.length==0){
返回阵列2;
}
if(array2.length==0){
返回阵列1;
}
while(array1项目| | array2项目){
if(array2Item==未定义| | array1Item合并数据线([“0”、“3”、“4”、“12”、“222”]、[“3”、“4”、“6”、“30”])正如评论中所说,JS中的字符串是按词汇进行比较的,因此,“222”比“3”小

我认为您可以使用的解决方案是:
在检查数组是否为空后,然后将其压缩到
mergedArray
,然后使用JS函数
sort()
,基本返回值为
value1-value2
,这样它将按照您想要的顺序对字符串进行排序,也可以处理数字

(进一步改为:)

函数合并到阵列(array1,array2){
设mergedArray=[];
if(array1.length==0){
返回阵列2;
}
if(array2.length==0){
返回阵列1;
}
mergedArray=array1.concat(array2)
mergedArray.sort(函数(a,b){
返回a-b
})
console.log(mergedArray);
返回Darray;
}
合并数据射线([0,3,4,12,222],[3,4,6,30]);

合并数据线([“0”、“3”、“4”、“12”、“222”]、[“3”、“4”、“6”、“30”])正如评论中所说,JS中的字符串是按词汇进行比较的,因此,“222”比“3”小

我认为您可以使用的解决方案是:
在检查数组是否为空后,然后将其压缩到
mergedArray
,然后使用JS函数
sort()
,基本返回值为
value1-value2
,这样它将按照您想要的顺序对字符串进行排序,也可以处理数字

(进一步改为:)

函数合并到阵列(array1,array2){
设mergedArray=[];
if(array1.length==0){
返回阵列2;
}
if(array2.length==0){
返回阵列1;
}
mergedArray=array1.concat(array2)
mergedArray.sort(函数(a,b){
返回a-b
})
console.log(mergedArray);
返回Darray;
}
合并数据射线([0,3,4,12,222],[3,4,6,30]);

合并数据线([“0”、“3”、“4”、“12”、“222”]、[“3”、“4”、“6”、“30”])字符串排序与数字排序的工作方式不同。它基于ASCII表值。例如,“99”>“100000”返回值应返回true,因为字符串的排序方式与数字的排序方式不同。它基于ASCII表值。例如,“99”>“100000”return应该返回true

字符串在词汇上进行比较
“222”
“3”
小。正如@ChrisG所说,字符串不能像数字那样进行比较。真的有必要否决OP的问题吗?对我来说,似乎没问题,他有一个真正的问题,用真正的代码,他只是不知道词法comparassion@CalvinNunes这很好,因为最少的研究量应该是足够的字符串在词汇上进行比较
“222”
“3”
小。正如@ChrisG所说,字符串不能像数字那样进行比较。真的有必要否决OP的问题吗?对我来说,似乎没问题,他有一个真正的问题,用真正的代码,他只是不知道词法comparassion@CalvinNunes这很好,因为最起码的研究应该是JavaScript使用Unicode,而不是ASCII。但你知道,对吗
console.log(“JavaScript使用Unicode,而不是ASCII。但您知道这一点,对吧?
console.log(”