javascript - 基于对象创建数组

标签 javascript arrays node.js

我有一个对象,其中的值是整数。就像是: {猫:2,狗:1,鸟:4}

我想创建一个数组,其中对象中的键包含在数组中的次数与值相同。所以,在这个例子中: [“猫”、“猫”、“狗”、“鸟”、“鸟”、“鸟”、“鸟”]

键总是相同的,但值可能为零。

我可以看到一种方法 - 对于每个键,我都可以检索值,然后将单词推送到数组中该次数。但这需要为我的每个键编写几行代码(其中的代码比本例中的要多得多)。我试过寻找更清洁的解决方案,但没有成功。有什么建议吗?

最佳答案

演示:https://jsfiddle.net/81LxL1qt/1/

var obj = {cat: 2, dog: 1, bird: 4};

var results = [];

for (var key in obj)
  for (var i = 0, count = obj[key]; i < count; i++)
    results.push(key);

console.log(results);

关于javascript - 基于对象创建数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37493254/

相关文章:

javascript - JSON 到 HTML 表 - 未定义

javascript - IE7 Javascript 和使用字符串作为数组

java - 如何合并 2 个数组?

java - 保留一个数组中位于另一个数组中的特定元素

node.js - Node.js 中的 Newbey 等待方式。为什么它不起作用?

node.js - 使用 npm 安装 CKEditor

javascript - AngularJS 范围变量不会在具有隔离范围的指令中持续存在

javascript - Angular 2 - 选择绑定(bind)

javascript - 在 Raphael.js 中制作发光动画

node.js - 我如何在 adonis 中使用 whereHas?