亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

怎么樣通過一個方法 改變數組對象中指定的value 結構不固定

怎么樣通過一個方法 改變數組對象中指定的value 結構不固定

郎朗坤 2018-10-02 10:22:19
let data = [    {        id: 1,        price1: 5,        price2: 4    }let data1 = [  {    id: 1,    price: {      price1: 6    }  }]let data2 = [  {    id: 1,    price: {      price1: {        price2: 7      }    }  }]// 通過一種方法 給指定的vlaue前面加一個¥符號 key值不固定test(data, 'price1,price2')test(data1, 'price.price1')test(data2, 'price.price1.pricew')function test (data, price) {}
查看完整描述

2 回答

?
MMMHUHU

TA貢獻1834條經驗 獲得超8個贊

為什么會產生結構不固定的情況?一般出現這種情況是數據結構設計不夠合理。

當然也可能是因為數據來源比較分散,這種情況下比較好的做法是為每種來源寫一個適配器轉換數據結構——當然,如果幾種數組結構的變化非常有規律,也可以用一個適配器來解決。


查看完整回答
反對 回復 2018-10-09
?
蝴蝶刀刀

TA貢獻1801條經驗 獲得超8個贊

let data = [

  {

    id: 1,

    price1: 5,

    price2: 4

  },

  {

    id: 2,

    price1: 5,

    price2: 4

  }

]


let data1 = [

  {

    id: 1,

    price: {

      price1: 6

    }

  },

  {

    id: 2,

    price: {

      price1: 6

    }

  }

]


let data2 = [

  {

    id: 1,

    price: {

      price1: {

        price2: 7

      }

    }

  },

  {

    id: 2,

    price: {

      price1: {

        price2: 7

      }

    }

  }

]


function test (data, price) {

  let keys = price.split(',').filter(key => key)

  keys.forEach(key => {

    let list = key.split('.').filter(key => key)

    let last = list.pop()

    data.forEach(item => {

      let tmpList = list.map(cur => cur)

      let cur

      let d = item

      while(cur = tmpList.shift()) {

        d = d[cur]

      }

      d[last] = '¥' + d[last]

    })

  })

}


test(data, 'price1,price2')

test(data1, 'price.price1')

test(data2, 'price.price1.price2')


console.log(data, data1, data2)


查看完整回答
反對 回復 2018-10-09
  • 2 回答
  • 0 關注
  • 838 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號