![](/img/trans.png)
[英]How do I construct a new array of object with some deleted properties from another array of objects in JavaScript
[英]How to clone new array of objects by selecting particular properties from another?
所以,
我收到的數據包含以下信息:
{
"data":[
{
"vote_count":22222,
"id":299537,
"ready":false,
},
{
"vote_count":2850,
"id":299534,
"ready":true,
},
]
}
現在,我需要制作一個包含相同結構但具有一些屬性的新對象,即:
{
"data": [
{
"ready":false,
},
{
"ready":true,
}
]
}
我需要可擴展的解決方案,例如,假設有一組具有50個屬性的數據。 此外,我確實找到了對象的解決方案,但從未找到對象數組的解決方案。
謝謝大家,我已經把頭弄壞了三個小時。
const input={"data":[{"vote_count":22222,"id":299537,"ready":false,},{"vote_count":2850,"id":299534,"ready":true,},]} const data = input.data.map(({ ready }) => ({ ready })) console.log({ data })
如果要獲取一堆屬性,則可以創建所需的屬性數組。 然后使用Object.assign()
或reduce
來創建每個對象的子集,如下所示:
const input={"data":[{"vote_count":22222,"id":299537,"ready":false,},{"vote_count":2850,"id":299534,"ready":true,},]} const properties = ["vote_count", "ready"] const data = input.data.map(a => Object.assign({}, ...properties.map(p => ({ [p]: a[p] }))) ) /* You could also use reduce like this: input.data.map(a => properties.reduce((r, p) => ({ ...r, [p]: a[p] }), {})) */ console.log({ data })
映射所需的屬性
var obj1 = { "data":[ { "vote_count":22222, "id":299537, "ready":false, }, { "vote_count":2850, "id":299534, "ready":true, }, ] } var obj2 = {} obj2.date = obj1.data.map(data => ({ ready: data.ready})); console.log(obj2)
您可以使用Array#map
方法和Array#reduce
方法進行操作
const input = { "data": [{ "vote_count": 22222, "id": 299537, "ready": false, }, { "vote_count": 2850, "id": 299534, "ready": true, }, ] } const extract = ['ready'] const data = input.data.map(o => extract.reduce((obj, k) => (obj[k] = o[k], obj), {})) console.log({ data })
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.