js 切割-1--2,最终结果为-1,-2两个数字,
时间: 2023-10-09 15:10:08 浏览: 60
可以使用字符串的 `split()` 方法来实现:
```
let str = "-1--2";
let arr = str.split("-");
arr.shift(); // 去掉第一个空元素
console.log(arr); // 输出 ["1", "2"]
arr = arr.map(Number).map(num => -num); // 转换为数字并取相反数
console.log(arr); // 输出 [-1, -2]
```
首先,使用 `split()` 方法将字符串按照 "-" 分割成数组。由于第一个字符是负号,所以分割后得到的数组的第一个元素是空字符串。使用 `shift()` 方法将空字符串删除。然后,使用 `map()` 方法将数组中的元素转换为数字,并使用 `map()` 方法将每个数字取相反数。最终得到的结果就是 [-1, -2]。
相关问题
这是一道字符串切割问题,要求把一个长度为n的字符串切割成若干个十进制数
字符串切割成十进制数通常是指将一个由数字字符组成的字符串解析为整数序列。这在编程中是一个常见的操作,例如处理用户输入、文件读取等场景下,需要将连续的数字字符串转换为单独的数值。
这个问题可以分为两步解决:
1. 遍历字符串:从左到右扫描字符串,检查每个连续的数字字符是否能组成一个完整的十进制数。比如,如果当前字符是 '1',接下来的是 '234', 那么 '1234' 就是一个有效的数字串。
2. 切割与转换:对于找到的每一个完整数字,使用适当的函数(如Python的int()函数或JavaScript的parseInt()函数)将其转换为整数,并存储到结果数组或列表中。
举个例子,在Python中:
```python
def split_decimal(s):
result = []
start = 0
for i in range(len(s)):
if s[i].isdigit():
# 如果遇到非数字字符,提取并转换之前的部分
if i > start:
result.append(int(s[start:i]))
# 更新起始位置
start = i + 1
# 处理最后一个可能的数字部分
if start < len(s):
result.append(int(s[start:]))
return result
# 使用示例
s = "123abc456"
split_numbers = split_decimal(s)
```
阅读全文