所以我有一个空数组,将对象推入其中。
{
"id": 702361206839,
"title": "Misanthropy Club Tee",
"handle": "misanthropy-club-tee",
"body_html": "<div></div>",
"published_at": "2018-06-25T21:41:55+01:00",
"created_at": "2018-06-25T21:41:55+01:00",
"updated_at": "2018-09-17T14:24:50+01:00",
"vendor": "J.Parré",
"product_type": "",
"tags": [
"T-Shirts"
]
}
如果我将同一对象推入数组,我希望能够更改ID键,使其值为702361206839-2
,如果我添加另一个,则为702361206839-3
,依此类推。但是,我推入数组的第一个对象保持不变。
谢谢
答案 0 :(得分:1)
只需维护id
的映射,该映射在按下id
时已通过键被推送到数组,并且值是已经推送的对象数。
var map = {};
var arr = [];
现在,让我们假设您要推送的对象是obj
var obj = {
"id": 702361206839,
"title": "Misanthropy Club Tee",
"handle": "misanthropy-club-tee",
"body_html": "<div></div>",
"published_at": "2018-06-25T21:41:55+01:00",
"created_at": "2018-06-25T21:41:55+01:00",
"updated_at": "2018-09-17T14:24:50+01:00",
"vendor": "J.Parré",
"product_type": "",
"tags": [
"T-Shirts"
]
};
在每次推送检查中是否存在映射之前,如果存在,请将对象id
更改为所需的格式。
var id = obj.id;
if(map[obj.id]) {
obj.id = obj.id + '-' + map[obj.id];
} else {
map[obj.id] = 1;
}
arr.push(obj);
map[id] += 1;