gpt4 book ai didi

javascript - 如何用 Epoch Time 替换 JavaScript 中的 ObjectId

转载 作者:可可西里 更新时间:2023-11-01 10:00:33 24 4
gpt4 key购买 nike

如何遍历 JSON 字符串并替换每个 ObjectId进入Unix Epoch time用于进一步处理?

我所知道的:您从 objectId 中获取前 8 个字符:

subStrObjectId = objectId.substring(0, 8);

5668d142a54cc4960b55ea19 --> 5668D142

并将这些从十六进制转换为 Int 值(以毫秒为单位的纪元时间):

subStrObjectIdInDec = parseInt(subStrObjectId, 16);

5668D142(十六进制)--> 1449709890(十进制)

我的 Json 字符串:

myJsonString = [
[
{"_id":"5668d142a54cc4960b55ea19","cid":10851045,"temp":25.4},
{"_id":"5668d14ea54cc4960b55ea1a","cid":10850909,"temp":24.9}
],
[
{"_id":"5668d14fa54cc4960b55ea1b","cid":10851045,"hum":37.9},
{"_id":"5668d3108c8cda92074b7ec9","cid":10850909,"hum":39.6}
],
[
{"_id":"5668d3198c8cda92074b7ecb","cid":10851045,"lux":34},
{"_id":"5668d31e8c8cda92074b7ecc","cid":10850909,"lux":68}
]
];

最佳答案

如果你把你所知道的写成一个函数:

function convert(id) {
return parseInt(id.substring(0, 8), 16);
}

您可以轻松地遍历您的对象并在这些对象上运行您的函数。

我更喜欢函数式风格的 javascript:

var data = myJsonString.map(function (array) {
return array.map(function (item) {
item.time = convert(item._id);
return item;
})
})

console.log(data);

但是您也可以使用循环进行迭代:

for (var i=0;i<myJsonString.length;i++) {
for (var j=0;j<myJsonString[i].length;j++) {
myJsonString[i][j].time = convert(myJsonString[i][j]._id);
}
}
console.log(myJsonString);

关于javascript - 如何用 Epoch Time 替换 JavaScript 中的 ObjectId,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34459777/

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