簡體   English   中英

使用 Ramda 更改深度嵌套的 object 值

[英]Use Ramda to change deep nested object value

我有如下數據結構,如何使用 Ramda 將數字類型的quantity更改為字符串類型(從1"1"

const data = {
  orderInfoList: [
    {
      orderNo: "string",
      productList: [
        {
         productName: "string",
         quantity: 1
        }
      ]
    }
  ]
}

假設您要對每個訂單中的所有產品執行此轉換:

 // Utility function const mapOver = R.curry( (lens, Fn, ent) => R.over( lens, R.when(R.is(Array), R.map(Fn)), ent ) ); const transformProductQuantity = R.over( R.lensProp('quantity'), String ); const transformOrderProducts = mapOver( R.lensProp('productList'), transformProductQuantity ); const transformData = mapOver( R.lensProp('orderInfoList'), transformOrderProducts ); const data = { orderInfoList: [ { orderNo: "1", productList: [ { productName: "Foo", quantity: 1 }, { productName: "Bar", quantity: 12 } ] }, { orderNo: "2", productList: [ { productName: "Foo", quantity: 12 }, { productName: "Bar", quantity: 15 } ] }, { orderNo: "3", } ] } const result = transformData(data); console.log(JSON.stringify(result, null, 2));
 <script src="//cdn.jsdelivr.net/npm/ramda@0.25.0/dist/ramda.min.js"></script>

暫無
暫無

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

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