我的目标:
const data = {
"rows": [
{
"code": "ct101",
"username": "admin",
"subscriptionExpiresOn": "2019-11-27T09:35:38.916Z",
},
{
"code": "bt101",
"username": "admin",
"subscriptionExpiresOn": "2016-11-27T08:20:57.297Z",
},
]
}
行数组内的对象中有一个名为“subscriptionExpiresOn”的键,
我想检查条件,如果 subscriptionExpiresOn 是 < new Date()。我需要这样的输出:
// Changing the value into 'Expired'
const data = {
"rows": [
{
"code": "ct101",
"username": "admin",
"subscriptionExpiresOn": "2019-11-27T09:35:38.916Z",
},
{
"code": "bt101",
"username": "admin",
"subscriptionExpiresOn": "Expired",
},
]
}
这是我使用 map 方法尝试的:
const now = new Date();
data.rows.map((index) => {
if (index.subscriptionExpiresOn < now) {
return {
subscriptionExpiresOn: 'Expired',
};
} else {
return data;
}
});
但它不起作用。
最佳答案
当您尝试改变同一个数组时,您应该使用Array.forEach。为了进行日期比较,您需要将字符串转换为日期对象。
const now = new Date();
const data = {"rows": [{"code": "ct101","username": "admin","subscriptionExpiresOn": "2019-11-27T09:35:38.916Z"},{"code": "bt101","username": "admin","subscriptionExpiresOn": "2016-11-27T08:20:57.297Z"}]};
data.rows.forEach(o => {
if(new Date(o.subscriptionExpiresOn) < now) o.subscriptionExpiresOn = 'Expired'
});
console.log(data.rows);
关于javascript - 使用 javascript 返回新形式的对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53568806/