怎么样通过一个方法 改变数组对象中指定的value 结构不固定

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) {


}


郎朗坤
浏览 809回答 2
2回答

MMMHUHU

为什么会产生结构不固定的情况?一般出现这种情况是数据结构设计不够合理。当然也可能是因为数据来源比较分散,这种情况下比较好的做法是为每种来源写一个适配器转换数据结构——当然,如果几种数组结构的变化非常有规律,也可以用一个适配器来解决。

蝴蝶刀刀

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)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript