-1

我有不需要的本地化数据:

title: {'en-US': 'Example Title}

我想创建一个将所有本地化对象转换为字符串的函数。

title: 'Example Title'

哪些 lodash 方法对此有帮助?

4

2 回答 2

1

根据您的示例数据,您可以使用_.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>

于 2019-04-15T13:50:04.710 回答
0

假设您有一个具有该结构的对象数组,并且位置可能都不同,那么您可以使用 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));

于 2019-04-15T13:57:09.533 回答