lodash-使用嵌套键将对象值转换为字符串

时间:2018-07-18 01:53:21

标签: javascript lodash

我想使用lodash将对象(嵌套键)的所有值从数字转换为字符串,从null转换为空白。

请帮助。

从:

{
 "item1": {
   "key1": 123,
   "key2": "str",
   "key3": null,
   "key4": [1, 1, 1],
   "nestedkey": {
      "nestkey1": {
          "nestkey2": {
              "key1": 12.34,
              "key3": null
          }
      }
   }
 }
}

收件人:

{
 "item1": {
   "key1": "123",
   "key2": "str",
   "key3": "",
   "key4": [1, 1, 1],
   "nestedkey": {
      "nestkey1": {
          "nestkey2": {
              "key1": "12.34",
              "key3": ""
          }
      }
   }
 }
}

谢谢

1 个答案:

答案 0 :(得分:0)

我发现了:

const mapValuesDeep = (obj, cb) => {
  if (_.isArray(obj)) {
    return obj.map(innerObj => mapValuesDeep(innerObj, cb));
  } else if (_.isObject(obj)) {
    return _.mapValues(obj, val => mapValuesDeep(val, cb));
  } else if(_.isString(obj) || _.isBoolean(obj)) {
    return obj;
  } else {
    return cb(obj);
  }
};

const result = mapValuesDeep(obj, _.toString)

谢谢!