gpt4 book ai didi

javascript - 使用 lodash 重新映射属性名称和值

转载 作者:数据小太阳 更新时间:2023-10-29 05:01:06 26 4
gpt4 key购买 nike

我有这个数组:

aItems = [{
"PropertyA": "apple",
"PropertyB": "banana",
"PropertyC": "dog",
"PropertyD": "hotdog",
"PropertyE": "coldcat",
"PropertyF": "Y",
"PropertyG": "N"
},
...,
{
"PropertyA": "this",
"PropertyB": "is",
"PropertyC": "json",
"PropertyD": "code",
"PropertyE": "wow",
"PropertyF": "N",
"PropertyG": "N"
}]

我想使用 lodash 来获得这个结果:

aItems = [{
"propertyA": "apple",
"propertyB": "banana",
"propertyC": "dog",
"propertyD": "hotdog",
"propertyE": "coldcat",
"propertyNEW": true,
"propertyG": false
},
...,
{
"propertyA": "this",
"propertyB": "is",
"propertyC": "json",
"propertyD": "code",
"propertyE": "wow",
"propertyNEW": false,
"propertyG": false
}]

我想将每个属性名称与其他名称进行映射,并更改某些特定属性的值。我可以使用 lodash 来完成吗?

最佳答案

是的,从 lodash v3.8.0 开始,您可以以任何需要的方式重新映射对象

ES5代码

var items = [ { oldKey: 'oldValue' /*...*/ } ]

var keyMapping = { oldKey: 'newKey' /*...*/ }
var valueMapping = { oldValue: 'newValue' /*...*/ }

var remapper = function(item){
return _(item) // lodash chain start
.mapKeys( function(v, k){ return keyMapping[k] } )
.mapValues( function(v){ return valueMapping[v] } )
.value() // lodash chain end
}

var remappedItems = items.map(remapper)

ES2015/ES6代码

let items = [ { oldKey: 'oldValue' /*...*/ } ]

let keyMapping = { oldKey: 'newKey' /*...*/ }
let valueMapping = { oldValue: 'newValue' /*...*/ }

let remapper = item => _(item) // lodash chain start
.mapKeys( (v, k)=> keyMapping[k] )
.mapValues( v => valueMapping[v] )
.value() // lodash chain end

let remappedItems = items.map(remapper)

关于javascript - 使用 lodash 重新映射属性名称和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30940120/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com