2017-08-11 83 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); 
相关问题