xiaokeqi / i-learned

1 stars 0 forks source link

JSON.stringify #9

Open xiaokeqi opened 5 years ago

xiaokeqi commented 5 years ago

今天看木易杨的每日一题(113),要求写一个去重函数 第一想法,是通过递归函数实现 看到大神们的回复后 发现,可通过JSON.stringify实现。 原理呢是因为,JSON.stringify可以把对象,序列化为json字符串。 字符串相等的。则为重复的。 通过set集合,即可将重复的,去除掉。 链接:https://github.com/Advanced-Frontend/Daily-Interview-Question/issues/215

xiaokeqi commented 5 years ago

JSON.stringify(value[, replacer [, space]])

参数

value 将要序列化成 一个JSON 字符串的值。 replacer 可选

如果该参数是一个函数,则在序列化过程中,被序列化的值的每个属性都会经过该函数的转换和处理;如果该参数是一个数组,则只有包含在这个数组中的属性名才会被序列化到最终的 JSON 字符串中;如果该参数为null或者未提供,则对象所有的属性都会被序列化;关于该参数更详细的解释和示例,请参考使用原生的 JSON 对象一文。

space 可选 指定缩进用的空白字符串,用于美化输出(pretty-print);如果参数是个数字,它代表有多少的空格;上限为10。该值若小于1,则意味着没有空格;如果该参数为字符串(字符串的前十个字母),该字符串将被作为空格;如果该参数没有提供(或者为null)将没有空格。

function replacer(key, value) {
  if (typeof value === "string") {
    return undefined;
  }
  return value;
}

var foo = {foundation: "Mozilla", model: "box", week: 45, transport: "car", month: 7};
var jsonString = JSON.stringify(foo, replacer);