From 34232006df636bc6e03bd8990d39cf95a237057a Mon Sep 17 00:00:00 2001 From: sjfkai Date: Sun, 14 Feb 2016 18:15:55 +0800 Subject: [PATCH] fix bugs --- .../2016-02-03-implementing-asynchronous-loops.md | 2 +- _posts/zh_CN/2016-02-10-array-average-and-median.md | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/_posts/zh_CN/2016-02-03-implementing-asynchronous-loops.md b/_posts/zh_CN/2016-02-03-implementing-asynchronous-loops.md index 2b671f17..c0b0e351 100644 --- a/_posts/zh_CN/2016-02-03-implementing-asynchronous-loops.md +++ b/_posts/zh_CN/2016-02-03-implementing-asynchronous-loops.md @@ -92,7 +92,7 @@ for (var i=0; i<5; i++) { for (let i=0; i<5; i++) { var temp = i; setTimeout(function(){ - console.log(temp); + console.log(i); }, 1000); } ``` \ No newline at end of file diff --git a/_posts/zh_CN/2016-02-10-array-average-and-median.md b/_posts/zh_CN/2016-02-10-array-average-and-median.md index 7d8d7907..6d9903d1 100644 --- a/_posts/zh_CN/2016-02-10-array-average-and-median.md +++ b/_posts/zh_CN/2016-02-10-array-average-and-median.md @@ -5,7 +5,7 @@ title: 数组平均值与中值 tip-number: 41 tip-username: soyuka tip-username-profile: https://github.com/soyuka -tip-tldr: 计算数组的平均值与中值 +tip-tldr: 计算数组的平均值与中位数 categories: @@ -42,14 +42,15 @@ values /= count; 取得中值的步骤是: - 将数组排序 -- 取得中间的值 +- 取得中位数 ```javascript let values = [2, 56, 3, 41, 0, 4, 100, 23]; values.sort((a, b) => a - b); -let middle = Math.floor(values.length / 2); -let median = values[middle]; -// median = 23 +let lowMiddle = Math.floor((values.length - 1) / 2); +let highMiddle = Math.ceil((values.length - 1) / 2); +let median = (values[lowMiddle] + values[highMiddle]) / 2; +// median = 13,5 ``` 或者使用[无符号右移](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators#Right_shift)操作符: @@ -57,6 +58,6 @@ let median = values[middle]; ```javascript let values = [2, 56, 3, 41, 0, 4, 100, 23]; values.sort((a, b) => a - b); -let median = values[values.length >> 1]; +let median = (values[(values.length - 1) >> 1] + values[values.length >> 1]) / 2 // median = 23 ```