【发布时间】:2022-01-16 06:50:29
【问题描述】:
我有一个从给定数组映射和创建新数组的函数。在我将数组映射到key: "value" 之后,但映射函数返回给我"key": "value"。
如何获取或映射非字符串格式的键?
let categories_name = [{ name: "test", prov_id: "f34f43"}, { name : "test1", prov_id: "233edd3"}]
.map(v => v.prov_id)
.filter((item, index, arr) => arr.indexOf(item) === index);
结果是这样的
["f34f43","233edd3"]
现在我想为每个值添加一个键(名称)并转换为一个对象
let newArray = categories_name.map(value => ({name: value}));
这是结果:
[ { "name": "f34f43" }, { "name": "233edd3" }]
但我需要这样,键不像字符串。
[ { name: "f34f43" }, { name: "233edd3" }]
【问题讨论】:
-
你“需要”的东西和你得到的东西是完全一样的。这似乎是XY problem。
-
{ "name": "f34f43" }和{ name: "f34f43" }是相同的。 -
为什么首先需要
name而不是"name"?它们在 JS 对象中是一样的 -
Javascript 对象中的所有键都是字符串。该语言只允许在不需要时省略引号。如果您需要连字符等字符,
{ 'fun-key': 'f34f43' }适用于对象键 -
这两件事之间没有区别。当键里面有奇怪的字符时,你只需要引号。如果你在你的数组上使用 JSON.stringify,它们都会被引用,这是唯一真正重要的时候。
标签: javascript javascript-objects