【问题标题】:Convert object values to string when values are: undefined, null or boolean [duplicate]当值为:未定义、空或布尔值时,将对象值转换为字符串 [重复]
【发布时间】:2020-12-26 18:40:14
【问题描述】:

我有这个对象:

const obj = {
 key1: false,
 key2: "",
 key3: undefined,
 key4: null
}

现在,我想使用 Object.values(obj) 所以我会得到一个值数组。但是 false、undefined 和 null 返回为空字符串,或者在 false 的情况下返回 1 或 0。

所以我想将对象值转换为字符串。

最好的方法是什么?

【问题讨论】:

  • JSON.stringify(obj) 将帮助您完成大部分工作,但 key3: undefined 被视为从未定义过。
  • “但是 false、undefined 和 null 返回为空字符串,或者在 false 情况下返回 1 或 0” - 不,Object.values() 不是这样工作的跨度>
  • 这能回答你的问题吗? Is there an __repr__ equivalent for javascript?
  • 使用JSON.stringify
  • 您可以将值映射到字符串,Object.values(obj).map(String) 如果您想要一个字符串数组...?

标签: javascript arrays object


【解决方案1】:

你可以试试template strings:

const result = Object
                .values({
                   key1: false,
                   key2: "",
                   key3: undefined,
                   key4: null
                })
                .map(v => `${v}`)

console.log(result)

【讨论】:

  • 我在想Object.values(obj).map(el => el?el:${el})
  • 没错。
  • @Yevgen Gorbunkov 它可以工作,但某些对象值可以是对象或数组。所以我写了这个: Object.values(obj).map(v => !v ?${v}:v);但是,如果其中一个值是“真”,它就不会通过
  • @Yevgen Gorbunkov 用这个解决了这个问题:Object.values(item).map(v => !v ?${v}:v===true ?${v}:v);
猜你喜欢
  • 2011-01-13
  • 1970-01-01
  • 1970-01-01
  • 2013-01-24
  • 2018-09-07
  • 1970-01-01
  • 2021-08-29
  • 2011-05-19
相关资源
最近更新 更多