首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Lodash在react中将json数组解析为映射数组

使用Lodash在react中将json数组解析为映射数组
EN

Stack Overflow用户
提问于 2018-01-16 16:52:23
回答 2查看 825关注 0票数 1

假设这是我的json的样子,它包含一个数组:

代码语言:javascript
运行
复制
{ 
  "status": {
    "time": 175
  },
  "hits": [
    {
      "key1": "value1",
      "key2": "value2"
    },
    {
      "key1": "value1",
      "key2": "value2"
    },
    {
      "key1": "value1",
      "key2": "value2"
    },
  ]
}

我想在react中创建一个这样的映射数组:

代码语言:javascript
运行
复制
[ 
{mapkey1: value1, mapkey2: value2},
{mapkey1: value1, mapkey2: value2},
{mapkey1: value1, mapkey2: value2},
]

我已经在源json中有了mapkeys到它们的xpath的映射:

代码语言:javascript
运行
复制
{
 mapkey1: xpath1,
 mapkey2: xpath2
 }

如何使用Lodash将此映射解析为另一个数组?

我知道在没有数组的情况下该怎么做:

代码语言:javascript
运行
复制
_.mapValues(
 xpathsMap,
 paths => _.get(data, paths),
);
EN

回答 2

Stack Overflow用户

发布于 2018-01-16 17:20:40

代码语言:javascript
运行
复制
var arr = [
    {
      "key1": "value1",
      "key2": "value2"
    },
    {
      "key1": "value1",
      "key2": "value2"
    },
    {
      "key1": "value1",
      "key2": "value2"
    },
  ];

var output = [];

_.forEach(arr, function(obj) {
    var keys = Object.keys(obj);
    var ob = {};

   _.forEach(keys, function(key) {
       ob['map' + key] = obj[key];
     })

    output.push(ob);
});

console.log(output);

这将为您提供所需的输出-

代码语言:javascript
运行
复制
[
    {mapkey1: "value1", mapkey2: "value2"},
    {mapkey1: "value1", mapkey2: "value2"},
    {mapkey1: "value1", mapkey2: "value2"}
]
票数 0
EN

Stack Overflow用户

发布于 2018-01-16 17:42:22

使用Array#map创建新的对象数组。使用lodash的_.mapKeys()创建所需的对象键

代码语言:javascript
运行
复制
const data = {"status":{"time":175},"hits":[{"key1":"value1","key2":"value2"},{"key1":"value1","key2":"value2"},{"key1":"value1","key2":"value2"}]}

const result = data.hits.map((o) => _.mapKeys(o, (val, key) => `map${key}`));

console.log(result);
代码语言:javascript
运行
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48277294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档