如何解决如何从具有负值的拆分字符串中获取数组
我不知道什么是正确的问题。
我想让这个数字 -800 变成 [-8,0] 任何人都可以构建它
我做的第一件事是将数字变成一个字符串,然后使用我迭代的 map 函数将它变成这样的数组
const number = -800;
const numberString = number.toString();
const arrayString = numberString.split``.map((x) => +x);
console.log(arrayString)
但结果是[ NaN,8,0 ]
如何在不干扰其他索引的情况下将NaN
和第一个索引8
更改为-8
。所以它变成了 [-8,0]
有人可以帮我吗?
谢谢。
解决方法
一种可能的解决方案是仅对绝对值执行此操作,并在 map
期间检查数字是否为负数(仅针对第一个索引)。
const number = -800;
const numberString = Math.abs(number).toString();
const arrayString = numberString.split``.map((x,i) => i == 0 && number < 0 ? -x : +x);
console.log(arrayString)
尝试使用 numberString.match(/-?\d/g)
而不是 split
const number = -800;
const numberString = number.toString();
const arrayString = numberString.match(/-?\d/g).map(x => +x);
console.log(arrayString)
如果您不清楚 array.includes()
,可以使用 Text
将字符串转换为数组编号。然后根据原号码的符号处理第一个号码。
Text(
text = "Click Me",style = TextStyle(color = Color.White),modifier = Modifier
.clickable(onClick = {})
.background(
Brush.verticalGradient(
colors = listOf(
Color.Blue,Color.Green
)
),shape = RoundedCornerShape(4.dp)
)
.padding(horizontal = 16.dp,vertical = 8.dp),)
使用 String#match 与匹配可选的正则表达式 - 与挖掘它。
var number = -800;
var numberString = number.toString().match(/-?\d/g);
var numberInt = [];
for (var i = 0; i < numberString.length; i++) {
numberInt.push(parseInt(numberString[i]));
}
console.log(numberInt);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。