【发布时间】:2016-05-27 22:41:01
【问题描述】:
我有一个对象,其中的值是整数。就像是: {猫:2,狗:1,鸟:4}
我想创建一个数组,其中对象中的键包含在数组中的次数与值相同。所以,在这种情况下: [“猫”、“猫”、“狗”、“鸟”、“鸟”、“鸟”、“鸟”]
键总是相同的,但值可能为零。
我可以看到一种方法 - 对于每个键,我可以检索值,然后将单词推送到数组中的次数。但这需要为我的每个键编写几行代码(其中的代码比本示例中的要多得多)。我试过寻找更清洁的解决方案,但没有运气。有什么建议吗?
【问题讨论】:
-
我想不出比这更好的方法了。这不是一个常见的操作,所以没有内置的东西可以做到这一点。
-
如果你使用像 underscore.js 这样的库,它可能会提供一个函数来将字符串推送 N 次,其中 N 是来自对象的值。
-
您可以使用
for in循环遍历键。无需为每个键重复代码。 -
注意对象是无序的。你可能会也可能不会总是得到相同的数组。
-
谢谢各位。 for in 循环(如下所示)是我所需要的。顺序在这里并不重要。
标签: javascript arrays node.js