gpt4 book ai didi

javascript - 我如何忽略 javascript 将前导零转换为八进制?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:56:17 25 4
gpt4 key购买 nike

我想将 number 转换为 string,但是我有一个关于 javascript 将具有前导零的数字转换为八进制的问题。

我有一个这样的对象列表

const ids = [
{ _id : 1236 },
{ _id : "abc123" },
{ _id : 012019 },
{ _id : 000010 },
{ _id : 001230 }
{ _id : 00000000000000 }
]

我想将对象中的所有 id 转换为 string像这样

[
{ _id : "1236" },
{ _id : "abc123" },
{ _id : "012345" },
{ _id : "000010 },
{ _id : "001230" },
{ _id : "00000000000000" }
]

所以,我写了一个这样的函数

updateIds = () => ids.map(i => {
i._id = i._id.toString()
return i
})

updateIds()

但是这个函数的结果是..

[
{ _id: '1236' },
{ _id: 'abc123' },
{ _id: '012019' },
{ _id: '8' },
{ _id: '664' },
{ _id: '0' }
]

我如何忽略 javascript 将 000010001230 转换为八进制?

附言。我想我不能使用 pad 函数来写前导零,因为 _id 的值是动态的。我不知道那个长度。

最佳答案

您必须定义要在 toString 调用中使用的基数。

如果您希望将 id 解析为基数 10,则调用 toString(10)。不可能通过填充来保持长度,因为数字是数字,所以前导零将被忽略。您可以为所有 ID 填充固定长度:

updateIds = () => ids.map(i => {
i._id = i._id.toString(10).padStart(9, '0');
return i
})

关于javascript - 我如何忽略 javascript 将前导零转换为八进制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58503198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com