javascript 使用Ramda重新格式化嵌套属性(assoc,propOr,prop,pluck)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 使用Ramda重新格式化嵌套属性(assoc,propOr,prop,pluck)相关的知识,希望对你有一定的参考价值。

const data = {
    "elements": {
      "edges": [
        {
          "node": {
            "id": "1",
            "extraData": {
              "field1": "John",
              "field2": "Doe",
            }
          }
        }
      ]
    }
};
 
const elementEdges = R.propOr([], 'edges', data.elements);
const elements = R.pluck('node', elementEdges);
const formatElement = element => R.assoc('id', R.prop('id', element), R.prop('extraData', element));

// Alternative Code
// const getId = element => R.prop('id', element); // 1
// const getExtraData = element => R.prop('extraData', element); // {"field1": "John", "field2":"Doe"}
// const formatElement = element => R.assoc('id', getId(element), getExtraData(element)); // Assigns 1 to id Property and merges ExtraData {"field1": "John", "field2":"Doe"}  
 
R.mapObjIndexed( formatElement, elements); // {"0": {"field1": "John", "field2": "Doe", "id": "1"}}

以上是关于javascript 使用Ramda重新格式化嵌套属性(assoc,propOr,prop,pluck)的主要内容,如果未能解决你的问题,请参考以下文章

markdown 使用ramda按嵌套值过滤对象数组

markdown 使用ramda通过嵌套值过滤对象数组:有时您无权访问后端,并且您希望过滤来自

ramda js 在第二和第三级更新深度嵌套的数组

javascript Ramda JS最常用的函数

javascript Ramda` then`示例

javascript Ramda`pathEq` vs`propEq`