2017-08-11 82 views
1

我有一個六個引號的數組,我試圖找到每個引號的平均長度。我想我需要創建一個新的字符串長度數組,然後平均。但我無法弄清楚如何將原始數組的數量放入新數組中。我如何獲得第一個數組的數量到新的數組?查找數組中字符串的平均字符串長度 - Javascript

+1

你可以用引號括起你的數組。 –

回答

2

arr = [1, 12, 123, 1234]     // works with numbers too 
 
avg = arr.join('').length/arr.length  // 10/4 = 2.5 
 
console.log(avg)

+0

默認情況下,字符串以','連接。你需要使用'join('')' – madox2

+1

謝謝@ madox2我的數學很糟糕.. – Slai

+0

這樣做!謝謝。 –

0

您可以使用Array.prototype.reduce總結所有報價的總長度並通過報價數組的長度/大小將其劃分:

const quotes = [ 
    "Quote #1", 
    "Longer quote", 
    "Something...", 
    ... 
]; 

// Sum up all the quotes lengths 
const totalQuotesLength = quotes.reduce(function (sum, quote) { 
    return sum + quote.length; 
}, 0); 

// Calculate avg length of the quotes 
const avgQuoteLength = (
    totalQuotesLength/quotes.length 
); 
0

如果我的理解沒錯,你要查找的平均長度數組中的字符串,你可以這樣做:

var total = 0; 
for(var i = 0; i < array.length; i++){ 
    total+=array[i].length; 
} 
var average = total/array.length; 
2

你可以reduce你的字符串數組。例如:

['a', 'bb', 'ccc', 'dddd'] 
    .reduce((a, b, i, arr) => a + b.length/arr.length, 0) 
+0

'/ arr.length'必須在正確的結果後減少 – Slai

+0

@Slai它計算的平均值部分,結果是正確的 – madox2

+0

你是對的,我的結果是錯誤的。 +1,再次感謝 – Slai

0

你可以簡單地也.reduce使用的東西,如:

const numbers = [1,2,3,4,5,6]; 
const total = numbers.reduce((acc, value) => acc + value, 0); 
const average = total/numbers.length; 

我鋤它將幫助!

0

您可以在每個元素上使用forEach而不創建新數組。可能很長,但閱讀:

https://jsfiddle.net/p19qbodw/ - 在打開控制檯運行此看到的結果

var quotes = ["quotequote", "quote", "qu"] 
charsSum = 0, 
avarage; 

quotes.forEach((el) => { 
charsSum += el.length; 
}); 

avarage = charsSum/quotes.length; 
0

全部加入數組值到一個字符串,然後你可以計算平均長度。

var yourArray = ["test", "tes", "test"], 
    arrayLength = yourArray.length, 
    joined = yourArray.join(''), 
    result = joined.length/arrayLength; 

console.log(result); 
相關問題