let array = [ {2008: 234, 2009: 234, 2010: 234, 2011: 234, 2012: 234, Type: 'A', ID: 'A1'},
{2008: 237, 2009: 243, 2010: 325, 2011: 378, 2012: 375, Type: 'B', ID: 'B1'},
{2008: 172, 2009: 191, 2010: 290, 2011: 274, 2012: 305, Type: 'C', ID: 'C1'},
{2008: 569, 2009: 625, 2010: 713, 2011: 655, 2012: 704, Type: 'D', ID: 'D1'},
{2008: 116, 2009: 123, 2010: 160, 2011: 880, 2012: 215, Type: 'E', ID: 'E1'},
{2008: 626, 2009: 611, 2010: 805, 2011: 918, 2012: 104, Type: 'F', ID: 'F1'} ]
對于以下物件陣列,我試圖將所有數字轉換為負數。我想要實作的是......
let newArray = [ {2008: -234, 2009: -234, 2010: -234, 2011: -234, 2012: -234, Type: 'A', ID: 'A1'},
{2008: -237, 2009: -243, 2010: -325, 2011: -378, 2012: -375, Type: 'B', ID: 'B1'},
{2008: -172, 2009: -191, 2010: -290, 2011: -274, 2012: -305, Type: 'C', ID: 'C1'},
{2008: -569, 2009: -625, 2010: -713, 2011: -655, 2012: -704, Type: 'D', ID: 'D1'},
{2008: -116, 2009: -123, 2010: -160, 2011: -880, 2012: -215, Type: 'E', ID: 'E1'},
{2008: -626, 2009: -611, 2010: -805, 2011: -918, 2012: -104, Type: 'F', ID: 'F1'} ]
在不影響最后兩個鍵/值對的情況下,我將如何做到這一點。所以我到目前為止我被困在這個......
const newArray = array.map(( { Type, ID, ...years }) => {
return years
})
const newArray2 = Object.fromEntries(
Object.entries(newArray).map(([key, value]) => [key, value * -1]))
uj5u.com熱心網友回復:
你快到了
試試這個
let array = [ {2008: 234, 2009: 234, 2010: 234, 2011: 234, 2012: 234, Type: 'A', ID: 'A1'},
{2008: 237, 2009: 243, 2010: 325, 2011: 378, 2012: 375, Type: 'B', ID: 'B1'},
{2008: 172, 2009: 191, 2010: 290, 2011: 274, 2012: 305, Type: 'C', ID: 'C1'},
{2008: 569, 2009: 625, 2010: 713, 2011: 655, 2012: 704, Type: 'D', ID: 'D1'},
{2008: 116, 2009: 123, 2010: 160, 2011: 880, 2012: 215, Type: 'E', ID: 'E1'},
{2008: 626, 2009: 611, 2010: 805, 2011: 918, 2012: 104, Type: 'F', ID: 'F1'} ]
const result = array.map(({
Type,
ID,
...years
}) => ({Type, ID, ...Object.fromEntries(Object.entries(years).map(([k, n]) => [k, -n]))})
)
console.log(result)
uj5u.com熱心網友回復:
一種方法是在迭代時檢查值的型別:
let array = [{ 2008: 234, 2009: 234, 2010: 234, 2011: 234, 2012: 234, Type: 'A', ID: 'A1' }, { 2008: 237, 2009: 243, 2010: 325, 2011: 378, 2012: 375, Type: 'B', ID: 'B1' }, { 2008: 172, 2009: 191, 2010: 290, 2011: 274, 2012: 305, Type: 'C', ID: 'C1' }, { 2008: 569, 2009: 625, 2010: 713, 2011: 655, 2012: 704, Type: 'D', ID: 'D1' }, { 2008: 116, 2009: 123, 2010: 160, 2011: 880, 2012: 215, Type: 'E', ID: 'E1' }, { 2008: 626, 2009: 611, 2010: 805, 2011: 918, 2012: 104, Type: 'F', ID: 'F1' }];
const result = array.map(o =>
Object.fromEntries(Object.entries(o).map(([k, v]) => (
typeof v === 'number' ? [k, v *= -1] : [k, v]
)))
);
console.log(result);
我假設您希望根據您提供的示例在結果中保留非數字鍵/值對(盡管您的代碼顯示您洗掉它們)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/478722.html
標籤:javascript 数组 目的
