javascript数组中的字符串和数字有什么区别?
我正在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项目
函数合并到阵列(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(”