[英]Convert object into array object but reduce down by key name character number
我有這個 object:
{
mainTitle: "xx",
press1: {text: "xx", linkUrl: "xx", linkText: "xx"}
press1imgs: [{…}, {…}]
press2: {text: "xx", linkUrl: "xx", linkText: "xx"}
press2imgs: [{…}, {…}]
press3: {text: "xx", linkUrl: "xx", linkText: "xx"}
press3imgs: [{…}, {…}]
press4: {text: "xx", linkUrl: "xx", linkText: "xx"}
press4imgs: [{…}, {…}]
press5: {text: "xx", linkUrl: "xx", linkText: "xx"}
press5imgs: [{…}, {…}]
press6: {text: "xx", linkUrl: "xx", linkText: "xx"}
press6imgs: [{…}, {…}]
}
我想將它縮減為一個數組,但將所有press1, press1imgs, press2, press2Imgs
放在同一個索引中。 如果按下后的數字相同,則放入同一個索引中,這樣一共有6個索引,如下:
[
{text: "xx", linkUrl: "xx", linkText: "xx", img: [{…}, {…}]},
{text: "xx", linkUrl: "xx", linkText: "xx", img: [{…}, {…}]},
{text: "xx", linkUrl: "xx", linkText: "xx", img: [{…}, {…}]},
{text: "xx", linkUrl: "xx", linkText: "xx", img: [{…}, {…}]},
{text: "xx", linkUrl: "xx", linkText: "xx", img: [{…}, {…}]},
{text: "xx", linkUrl: "xx", linkText: "xx", img: [{…}, {…}]},
]
我能夠將 object 轉換為數組並從pressx
獲取數字,但隨后我迷失了如何繼續使用減少、過濾、map? 我的嘗試:
const mapped = Object.keys(this.content).map((key) => ({
key: key,
value: this.content[key],
}));
console.log(mapped);
mapped.map((item) => {
console.log(item.key.charAt(5));
if (item.key.charAt(5)){
}
});
因為鍵是非常動態的,所以我懷疑數組方法在這里是否是一個不錯的選擇。 我會使用一個循環:
const input = this.content;
const results = [];
let i = 1;
while (input.hasOwnProperty('press' + i)) {
results.push({
...input['press' + i],
img: input['press' + i + 'imgs'],
});
i++;
}
實時片段:
const input = { mainTitle: "xx", press1: {text: "xx", linkUrl: "xx", linkText: "xx"}, press1imgs: [{}, {}], press2: {text: "xx", linkUrl: "xx", linkText: "xx"}, press2imgs: [{}, {}], press3: {text: "xx", linkUrl: "xx", linkText: "xx"}, press3imgs: [{}, {}], press4: {text: "xx", linkUrl: "xx", linkText: "xx"}, press4imgs: [{}, {}], press5: {text: "xx", linkUrl: "xx", linkText: "xx"}, press5imgs: [{}, {}], press6: {text: "xx", linkUrl: "xx", linkText: "xx"}, press6imgs: [{}, {}] } const results = []; let i = 1; while (input.hasOwnProperty('press' + i)) { results.push({...input['press' + i], img: input['press' + i + 'imgs'], }); i++; } console.log(results);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.