js实现写个函数,参数有2个判断谁大,如果参数含有非数字则判断其ascll
时间: 2024-05-03 15:17:36 浏览: 38
可以使用isNaN()函数来判断参数是否为数字,如果不是数字,则使用charCodeAt()函数获取其ASCII码值。
代码如下:
```javascript
function compare(a, b) {
if (isNaN(a)) {
a = a.charCodeAt();
}
if (isNaN(b)) {
b = b.charCodeAt();
}
return a > b ? a : b;
}
console.log(compare(1, 2)); // 2
console.log(compare('a', 2)); // 97
console.log(compare('b', 'a')); // 98
```
在上面的代码中,首先使用isNaN()函数判断参数是否为数字,如果是数字则直接进行比较;如果不是数字,则使用charCodeAt()函数获取其ASCII码值,再进行比较。最终返回较大的值。
相关问题
js实现写个函数,参数有2个判断谁大,如果参数含有非数字则判断其ascll,如果该非数字参数有多位则先从第一位判断,如果相等依此类推
可以使用以下代码实现:
```
function compare(a, b) {
if (isNaN(a)) {
if (isNaN(b)) {
// 如果两个参数都是非数字,则按照 ASCII 码值比较
for (let i = 0; i < Math.max(a.length, b.length); i++) {
if (a.charCodeAt(i) !== b.charCodeAt(i)) {
return a.charCodeAt(i) - b.charCodeAt(i);
}
}
// 如果前面的所有字符都相等,则长度较短的参数更小
return a.length - b.length;
} else {
// 如果只有一个参数是非数字,则非数字参数更小
return -1;
}
} else if (isNaN(b)) {
// 如果只有一个参数是非数字,则非数字参数更小
return 1;
} else {
// 如果两个参数都是数字,则直接比较大小
return a - b;
}
}
```
这个函数接受两个参数 `a` 和 `b`,并且会按照题目要求进行比较。如果两个参数都是数字,则直接比较它们的大小;如果有一个参数是非数字,则非数字参数更小;如果两个参数都是非数字,则按照 ASCII 码值从左到右逐位比较,直到找到不同的字符为止,如果前面的所有字符都相等,则长度较短的参数更小。
ASCLL判断字符串是否为数字
以下是使用ASCII码判断字符串是否为数字的Python代码:
```python
def is_number(s):
for c in s:
if c < '0' or c > '9':
return False
return True
# 测试
print(is_number('1234')) # 输出:True
print(is_number('12.34')) # 输出:False
```
该代码定义了一个名为`is_number`的函数,该函数接受一个字符串作为参数,并返回一个布尔值,指示该字符串是否为数字。该函数使用一个循环遍历字符串中的每个字符,并检查它是否在ASCII码中表示数字。如果找到非数字字符,则函数返回False。如果所有字符都是数字,则函数返回True。
阅读全文