首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用重复字符串javascript生成数组

如何使用重复字符串javascript生成数组
EN

Stack Overflow用户
提问于 2015-12-11 03:21:54
回答 3查看 58关注 0票数 0

如何使用这样的函数生成数组?

代码语言:javascript
复制
var name = ["monkey","monkey"..."horse","horse",..."dog","dog",..."cat","cat"...]​

在我的真实案例中,我可能不得不将每个名字重复100次。

EN

回答 3

Stack Overflow用户

发布于 2015-12-11 03:26:40

假设您已经在数组中包含了这些单词,请尝试以下代码:

代码语言:javascript
复制
var words = ["monkey", "hourse", "dog", "cat"];
var repeatWords = [];
for(var i = 0; i < words.length; i++)
{
    for(var j = 0; j < 100; j++)
  {
    repeatWords.push(words[i]);
  }
}
票数 2
EN

Stack Overflow用户

发布于 2015-12-11 03:41:38

您可以尝试这样做,指定要使用的单词和创建所需数组的时间。

代码语言:javascript
复制
var neededWords = ["Cat", "Hourse", "Dog"];
    var finalArray = [];
    var times = 10;
    for (var i = 0; i < neededWords.length; i++) {
        for (var n = 0; n < times; n++) {
            finalArray.push(neededWords[i]);
            }
    }
    console.log(finalArray);

希望这能有所帮助!

票数 0
EN

Stack Overflow用户

发布于 2015-12-11 04:01:46

如果我理解正确的话,您需要一个函数,该函数以项的集合为参数,并返回重复的项的集合。从您的问题陈述中,我假设重复必须由您针对每个集合项目进行调整-如果我错了,请纠正我。

我编写的函数就是这么做的;它接受一个对象字面值{name1:frequency1,name2:frequency2..},然后遍历这些键,并按照frequencyMap对象中相关频率的指示对每个键进行多次推送。

代码语言:javascript
复制
function getRepeatedNames( frequencyMap ) {
  var namesCollection = [];
  Object.keys(frequencyMap).forEach(function(name,i,names){
    var freq = frequencyMap[name];
    freq = (isFinite(freq)) ? Math.abs(Math.floor(freq)) : 1;
    for (var nameCounter=0; nameCounter<freq; nameCounter++) {
      namesCollection.push(name); 
    }
  });
  return namesCollection;
}

频率映射中的非数字值将被忽略,并替换为1。

使用示例:如果我们想创建一个包含5只猫和3只狗的数组,我们需要调用

代码语言:javascript
复制
getRepeatedNames({cat: 2, dog: 3}); // ["cat","cat","dog","dog","dog"]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34210039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档