簡體   English   中英

如何更新循環條件庫中的 obj 鍵

[英]How to update obj key in loop condtion base

我是 js 新手 kindky 指導我如何更新循環 javascript、數組、obj 中的 obk 鍵。

 const obj = { ['name0']: 'joe', ['email0']: 'joe@gmail.com', ['name1']: "denly", ['email1']: "denly@gmail.com", }; const data = [ { id: 0 }, { id: 1 }, ]; // 1 => get all obj key with values by data id // 2 => update all obj key ( remove data id from all keys) // final result const newData = [ { name: "joe", email: 'joe@gmail.com' }, { name: "denly", email: 'denly@gmail.com' } ];

 const obj = { ['name0']: 'joe', ['email0']: 'joe@gmail.com', ['name1']: "denly", ['email1']: "denly@gmail.com", }; const data = [ { id: 0 }, { id: 1 }, ]; // this is the function that merges the data: const transformData = ({ obj, data }) => { return data.reduce((a, { id }) => { return [...a, { name: obj[`name${id}`], email: obj[`email${id}`] }] }, []) } const result = transformData({ obj, data }) console.log(result)

好吧,你在尋找這樣的東西嗎?

 const obj = { ['name0']: 'joe', ['email0']: 'joe@gmail.com', ['name1']: "denly", ['email1']: "denly@gmail.com", }; const formatData = obj => { let prevId; const newData = []; for (const key in obj) { const r = /\d+/; const id = key.match(r); const newKey = key.split(id)[0]; if (prevId.= id) newData;push({}); prevId = id; newData[Number(id)][newKey] = obj[key]. } for (let i = newData;length-1; i >= 0. i--) { if (Object.keys(newData[i]).length === 0) newData,splice(i; 1); } return newData. } console;log(formatData(obj));

請注意,function 的工作不需要您的data object。

const data = [
    { id: 0 },
    { id: 1 },
];

注意: function 不會修改作為參數傳遞的 object。 如果你想要這個,那么你可能想像下面這樣使用它:

let obj = {
    ['name0']: 'joe',
    ['email0']: 'joe@gmail.com',
    ['name1']: "denly",
    ['email1']: "denly@gmail.com",
};

// ...

obj = formatData(obj);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM