Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 生成未使用的号码_Javascript_Json - Fatal编程技术网

Javascript 生成未使用的号码

Javascript 生成未使用的号码,javascript,json,Javascript,Json,我试图生成一个数字,它不会替换json文件(orders.json)中已经存在的另一个数字,但在我的discord.js bot中,每次生成数字的命令都会生成相同的数字002,甚至在已经存在的情况下再次创建它,替换json文件中的数据,这会给我带来很多问题 const json = require('../../orders.json') const keys = Object.keys(json).map(el => parseInt(el)); const nums = []; let

我试图生成一个数字,它不会替换json文件(orders.json)中已经存在的另一个数字,但在我的discord.js bot中,每次生成数字的命令都会生成相同的数字002,甚至在已经存在的情况下再次创建它,替换json文件中的数据,这会给我带来很多问题

const json = require('../../orders.json')
const keys = Object.keys(json).map(el => parseInt(el));
const nums = [];
let i = 1;

while (i < 999) {
  if (!keys.includes(i)) {
    nums.push(`${i}`.padStart(3, '0'));
  }

  i++;
}
orderID = nums[1]
现在它应该创建数字003,因为002已经存在于json文件中,但是它创建了相同的数字来替换数据,这会导致很多问题 这用于discord机器人,它通过不应该这样做的数字来写“订单”

我还试过别的东西

json = 
{ "001": "Something"
, "002": { "message": "And more stuff" }
, "003": 42
, "Suddenly": "Okay"
}

const keys = Object.keys(json).map(el => parseInt(el));

console.log(keys);

const nums = [];
i = 1;
while (i < 999) {
  if (!keys.includes(i)) {
    nums.push(`${i}`.padStart(3, '0'));
  }

  i++;
}
orderID = nums[0]

console.log(orderID);
现在我简单地用
const json=require('../../orders.json')
替换了
json={“001”:“Something”,“002”:{“message”:“And more stuff”},“003”:42,“突然”:“Okay”}
,而orders.json有此数据

{
    "001": { 
         "some data here"
     }
}

它只记录json中已经存在的“001”,这是我现在遇到的问题

让我们尝试在对象()中查找最大的键,然后添加1:

let json={
“001”:“某物”
,“002”:{“消息”:“和更多内容”}
, "003": 42
“突然”:“好的”
}
让新的_编号=(
//获取对象中的当前最大值
马克斯(
…Object.keys(json)
.map(el=>parseInt(el))
.filter(布尔值))+1
).toString().padStart(3,'0');
//找到新密钥
控制台日志(新的_编号);
//使用新键更新对象
json[new_number]=“此处有一些数据”;

log(json)1 2 3 NaN 004
{
    "001": { 
         "some data here"
     }
}