Hyr*_*ule 6 javascript ecmascript-6
我有一个看起来像这样的对象:
const object = {
head: 1,
eyes: 2,
arms: 2,
legs: 3
}
Run Code Online (Sandbox Code Playgroud)
我想循环遍历此对象,并注销每个键名称,例如eyes值的数量.
这将导致:
head
eyes
eyes
arms
arms
legs
legs
legs
Run Code Online (Sandbox Code Playgroud)
目前我有这个解决方案,但感觉它可以做得更整齐和可读.
Object.keys(object)
.map(key => {
return [...Array(object[key])].map( (_, i) => {
return console.log(key)
})
Run Code Online (Sandbox Code Playgroud)
有什么建议?
您可以使用Object.entries()andmap()方法并返回新数组。
const object = {head: 1,eyes: 2,arms: 2,legs: 3}
const res = [].concat(...Object.entries(object).map(([k, v]) => Array(v).fill(k)))
console.log(res)Run Code Online (Sandbox Code Playgroud)
或者您可以reduce()在数组中使用扩展语法。
const object = {head: 1,eyes: 2,arms: 2,legs: 3}
const res = Object
.entries(object)
.reduce((r, [k, v]) => [...r, ...Array(v).fill(k)], [])
// Or you can use push instead
// .reduce((r, [k, v]) => (r.push(...Array(v).fill(k)), r), [])
console.log(res)Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1883 次 |
| 最近记录: |