如何用這樣的函數生成一個數組?如何用重複的字符串生成數組javascript
var name = ["monkey","monkey"..."horse","horse",..."dog","dog",..."cat","cat"...]
在我的實際情況,我可能需要重複每個名字100次..
如何用這樣的函數生成一個數組?如何用重複的字符串生成數組javascript
var name = ["monkey","monkey"..."horse","horse",..."dog","dog",..."cat","cat"...]
在我的實際情況,我可能需要重複每個名字100次..
假設你已經有一個數組中的話試試這個代碼:
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]);
}
}
你可以試試這個,指定要使用的單詞,以及創建所需數組的時間。
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);
希望有所幫助!
如果我理解正確,您需要一個函數,它將一個項目集合作爲參數並返回這些項目的重複集合。從你的問題陳述中,我認爲重複必須由你每個收集項目進行調整 - 糾正我,如果我錯了。
我寫的功能就是這麼做的;它需要一個對象字面值{name1:frequency1,name2:frequency2..}
,然後對該鍵進行迭代,並按照頻率映射對象中的關聯頻率所指示的次數推送每一個。
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只狗創建一個數組,我們需要調用
getRepeatedNames({cat: 2, dog: 3}); // ["cat","cat","dog","dog","dog"]
你想根據數組產生每個單詞出現一次嗎? – Keammoort
'for(var i = 0; i <100; i ++){name.push('cat'); }' –