From 01b0e12ba27b5069248fd09235e9a7143915ee30 Mon Sep 17 00:00:00 2001 From: Irvin Date: Wed, 16 Feb 2022 02:02:49 +0800 Subject: remove `notranslate` class in zh-CN --- .../global_objects/array/reduce/index.html | 40 +++++++++++----------- 1 file changed, 20 insertions(+), 20 deletions(-) (limited to 'files/zh-cn/web/javascript/reference/global_objects/array/reduce') diff --git a/files/zh-cn/web/javascript/reference/global_objects/array/reduce/index.html b/files/zh-cn/web/javascript/reference/global_objects/array/reduce/index.html index f356bceaf6..cc217e28af 100644 --- a/files/zh-cn/web/javascript/reference/global_objects/array/reduce/index.html +++ b/files/zh-cn/web/javascript/reference/global_objects/array/reduce/index.html @@ -36,7 +36,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Array/Reduce

语法

-
arr.reduce(callback(accumulator, currentValue[, index[, array]])[, initialValue])
+
arr.reduce(callback(accumulator, currentValue[, index[, array]])[, initialValue])

参数

@@ -89,7 +89,7 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Array/Reduce

提供初始值通常更安全,正如下面的例子,如果没有提供initialValue,则可能有四种输出:

-
var maxCallback = ( acc, cur ) => Math.max( acc.x, cur.x );
+
var maxCallback = ( acc, cur ) => Math.max( acc.x, cur.x );
 var maxCallback2 = ( max, cur ) => Math.max( max, cur );
 
 // reduce() 没有初始值
@@ -107,7 +107,7 @@ var maxCallback2 = ( max, cur ) => Math.max( max, cur );
 
 

假如运行下段reduce()代码:

-
[0, 1, 2, 3, 4].reduce(function(accumulator, currentValue, currentIndex, array){
+
[0, 1, 2, 3, 4].reduce(function(accumulator, currentValue, currentIndex, array){
   return accumulator + currentValue;
 });
 
@@ -172,11 +172,11 @@ var maxCallback2 = ( max, cur ) => Math.max( max, cur );

你还可以使用{{jsxref("Functions/Arrow_functions", "箭头函数","",1)}}来代替完整的函数。 下面的代码将产生与上面的代码相同的输出:

-
[0, 1, 2, 3, 4].reduce((prev, curr) => prev + curr );
+
[0, 1, 2, 3, 4].reduce((prev, curr) => prev + curr );

如果你打算提供一个初始值作为reduce()方法的第二个参数,以下是运行过程及结果:

-
[0, 1, 2, 3, 4].reduce((accumulator, currentValue, currentIndex, array) => {
+
[0, 1, 2, 3, 4].reduce((accumulator, currentValue, currentIndex, array) => {
     return accumulator + currentValue
 }, 10)
 
@@ -332,14 +332,14 @@ var maxCallback2 = ( max, cur ) => Math.max( max, cur );

数组里所有值的和

-
var sum = [0, 1, 2, 3].reduce(function (accumulator, currentValue) {
+
var sum = [0, 1, 2, 3].reduce(function (accumulator, currentValue) {
   return accumulator + currentValue;
 }, 0);
 // 和为 6

你也可以写成箭头函数的形式:

-
var total = [ 0, 1, 2, 3 ].reduce(
+
var total = [ 0, 1, 2, 3 ].reduce(
   ( acc, cur ) => acc + cur,
   0
 );
@@ -348,7 +348,7 @@ var maxCallback2 = ( max, cur ) => Math.max( max, cur );

要累加对象数组中包含的值,必须提供初始值,以便各个item正确通过你的函数。

-
var initialValue = 0;
+
var initialValue = 0;
 var sum = [{x: 1}, {x:2}, {x:3}].reduce(function (accumulator, currentValue) {
     return accumulator + currentValue.x;
 },initialValue)
@@ -357,7 +357,7 @@ console.log(sum) // logs 6

你也可以写成箭头函数的形式:

-
var initialValue = 0;
+
var initialValue = 0;
 var sum = [{x: 1}, {x:2}, {x:3}].reduce(
     (accumulator, currentValue) => accumulator + currentValue.x
     ,initialValue
@@ -368,7 +368,7 @@ console.log(sum) // logs 6
 
 

将二维数组转化为一维

-
var flattened = [[0, 1], [2, 3], [4, 5]].reduce(
+
var flattened = [[0, 1], [2, 3], [4, 5]].reduce(
   function(a, b) {
     return a.concat(b);
   },
@@ -379,7 +379,7 @@ console.log(sum) // logs 6
 
 

你也可以写成箭头函数的形式:

-
var flattened = [[0, 1], [2, 3], [4, 5]].reduce(
+
var flattened = [[0, 1], [2, 3], [4, 5]].reduce(
  ( acc, cur ) => acc.concat(cur),
  []
 );
@@ -388,7 +388,7 @@ console.log(sum) // logs 6
 
 

计算数组中每个元素出现的次数

-
var names = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice'];
+
var names = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice'];
 
 var countedNames = names.reduce(function (allNames, name) {
   if (name in allNames) {
@@ -404,7 +404,7 @@ var countedNames = names.reduce(function (allNames, name) {
 
 

按属性对object分类

-
var people = [
+
var people = [
   { name: 'Alice', age: 21 },
   { name: 'Max', age: 20 },
   { name: 'Jane', age: 20 }
@@ -434,7 +434,7 @@ var groupedPeople = groupBy(people, 'age');
 
 

使用扩展运算符和initialValue绑定包含在对象数组中的数组

-
// friends - 对象数组
+
// friends - 对象数组
 // where object field "books" - list of favorite books
 var friends = [{
   name: 'Anna',
@@ -469,7 +469,7 @@ var allbooks = friends.reduce(function(prev, curr) {
 

注意: 如果你正在使用一个可以兼容{{jsxref("Set")}} 和 {{jsxref("Array.from()")}} 的环境, 你可以使用let orderedArray = Array.from(new Set(myArray)); 来获得一个相同元素被移除的数组。

-
let myArray = ['a', 'b', 'a', 'b', 'c', 'e', 'e', 'c', 'd', 'd', 'd', 'd']
+
let myArray = ['a', 'b', 'a', 'b', 'c', 'e', 'e', 'c', 'd', 'd', 'd', 'd']
 let myOrderedArray = myArray.reduce(function (accumulator, currentValue) {
   if (accumulator.indexOf(currentValue) === -1) {
     accumulator.push(currentValue)
@@ -479,7 +479,7 @@ let myOrderedArray = myArray.reduce(function (accumulator, currentValue) {
 
 console.log(myOrderedArray)
-
let arr = [1,2,1,2,3,5,4,5,3,4,4,4,4];
+
let arr = [1,2,1,2,3,5,4,5,3,4,4,4,4];
 let result = arr.sort().reduce((init, current) => {
     if(init.length === 0 || init[init.length-1] !== current) {
         init.push(current);
@@ -490,7 +490,7 @@ console.log(result); //[1,2,3,4,5]

按顺序运行Promise

-
/**
+
/**
  * Runs promises from array of functions that can return promises
  * in chained manner
  *
@@ -537,7 +537,7 @@ runPromiseInSequence(promiseArr, 10)
 
 

功能型函数管道

-
// Building-blocks to use for composition
+
// Building-blocks to use for composition
 const double = x => x + x;
 const triple = x => 3 * x;
 const quadruple = x => 4 * x;
@@ -563,7 +563,7 @@ multiply24(10); // 240
 
 

使用 reduce实现map

-
if (!Array.prototype.mapUsingReduce) {
+
if (!Array.prototype.mapUsingReduce) {
   Array.prototype.mapUsingReduce = function(callback, thisArg) {
     return this.reduce(function(mappedArray, currentValue, index, array) {
       mappedArray[index] = callback.call(thisArg, currentValue, index, array)
@@ -579,7 +579,7 @@ multiply24(10); // 240
 
 

Polyfill

-
// Production steps of ECMA-262, Edition 5, 15.4.4.21
+
// Production steps of ECMA-262, Edition 5, 15.4.4.21
 // Reference: http://es5.github.io/#x15.4.4.21
 // https://tc39.github.io/ecma262/#sec-array.prototype.reduce
 if (!Array.prototype.reduce) {
-- 
cgit v1.2.3-54-g00ecf