我有不需要的本地化数据:
title: {'en-US': 'Example Title}
我想创建一个将所有本地化对象转换为字符串的函数。
title: 'Example Title'
哪些 lodash 方法对此有帮助?
我有不需要的本地化数据:
title: {'en-US': 'Example Title}
我想创建一个将所有本地化对象转换为字符串的函数。
title: 'Example Title'
哪些 lodash 方法对此有帮助?
根据您的示例数据,您可以使用_.mapValues()所需翻译的属性名称:
const data = {
title: {'en-US': 'Example Title'}
}
const result = _.mapValues(data, 'en-US')
console.log(result)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.js"></script>
假设您有一个具有该结构的对象数组,并且位置可能都不同,那么您可以使用 lodash 来处理它:
const data = [{id:11,title:{'en-US':'Example Title 11'}},{id:12,title:{'tr-TR':'Example Title 12'}},{id:13,title:{'en-GB':'Example Title 13'}}];
function removeLocation(data) {
return _.map(data, obj => {
const key = _.keys(obj.title)[0];
return { ...obj, title: obj.title[key] };
});
}
console.log(removeLocation(data));
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script>
但如果你打算这样做,你不妨为自己节省几 KB 并使用原生 JS 方法:
const data = [{id:11,title:{'en-US':'Example Title 11'}},{id:12,title:{'tr-TR':'Example Title 12'}},{id:13,title:{'en-GB':'Example Title 13'}}];
function removeLocation(data) {
return data.map(obj => {
const key = Object.keys(obj.title)[0];
return { ...obj, title: obj.title[key] };
});
}
console.log(removeLocation(data));