将对象数组转换为 Map Immutable.js
Converting an array of objects to Map Immutable.js
我有一个对象数组,我希望将其转换为一个普通的不可变映射:
name: {
urlname
id
}
目前我正在做以下事情 data
作为对象数组:
data = data.map((data) => ({
name: data.name,
urlName: data.urlName,
id: data.id
}))
我要转换的是(data
):
[{"id":"10","name":"Dave","urlName":"foo-bar","order":"-100","classId":"12","className":"David","classUrlName":"david-foo-bar"}]
如上所述,我希望将名称作为键,如果可能的话,将 urlName 和 id 作为键的值。如果可能的话,我想循环数据,直到一切都减少到那个结构。
由于您想将数据从一个形状转换到另一个形状,您可以使用 reduce function 来完成这项工作。
reduce
函数会将数据转换为 Map
,其中每个键是 name
,值是 id
和 urlName
const sample = [{"id":"10","name":"Dave","urlName":"foo-bar","order":"-100","classId":"12","className":"David","classUrlName":"david-foo-bar"}];
const result = sample.reduce((acc, item) => {
return acc.set(item.name, {
id: item.id,
urlName: item.urlName,
})
}, new Immutable.Map())
console.log("Dave's Id", result.getIn(["Dave", "id"]));
console.log("Date's urlName", result.getIn(["Dave", "urlName"]));
<script src="https://cdnjs.cloudflare.com/ajax/libs/immutable/4.0.0-rc.9/immutable.js"></script>
在此处查看 ImmutableJS Reduce and Native Javascript Array.reduce 的文档。两者的 API.
相同
我有一个对象数组,我希望将其转换为一个普通的不可变映射:
name: {
urlname
id
}
目前我正在做以下事情 data
作为对象数组:
data = data.map((data) => ({
name: data.name,
urlName: data.urlName,
id: data.id
}))
我要转换的是(data
):
[{"id":"10","name":"Dave","urlName":"foo-bar","order":"-100","classId":"12","className":"David","classUrlName":"david-foo-bar"}]
如上所述,我希望将名称作为键,如果可能的话,将 urlName 和 id 作为键的值。如果可能的话,我想循环数据,直到一切都减少到那个结构。
由于您想将数据从一个形状转换到另一个形状,您可以使用 reduce function 来完成这项工作。
reduce
函数会将数据转换为 Map
,其中每个键是 name
,值是 id
和 urlName
const sample = [{"id":"10","name":"Dave","urlName":"foo-bar","order":"-100","classId":"12","className":"David","classUrlName":"david-foo-bar"}];
const result = sample.reduce((acc, item) => {
return acc.set(item.name, {
id: item.id,
urlName: item.urlName,
})
}, new Immutable.Map())
console.log("Dave's Id", result.getIn(["Dave", "id"]));
console.log("Date's urlName", result.getIn(["Dave", "urlName"]));
<script src="https://cdnjs.cloudflare.com/ajax/libs/immutable/4.0.0-rc.9/immutable.js"></script>
在此处查看 ImmutableJS Reduce and Native Javascript Array.reduce 的文档。两者的 API.
相同