{"id":3281,"date":"2022-04-23T13:17:32","date_gmt":"2022-04-23T05:17:32","guid":{"rendered":"http:\/\/www.yuguoxy.com\/geekhome\/?p=3281"},"modified":"2026-08-18T12:35:35","modified_gmt":"2026-08-18T04:35:35","slug":"%e6%95%b0%e7%bb%84reduce%e6%96%b9%e6%b3%95%e8%af%a6%e8%a7%a3","status":"publish","type":"post","link":"https:\/\/ai.zhousir.top\/?p=3281","title":{"rendered":"\u6570\u7ec4reduce\u65b9\u6cd5\u8be6\u89e3"},"content":{"rendered":"<section id=\"wenyan\" style=\"font-family: system-ui, 'Apple Color Emoji', 'Segoe UI', 'Segoe UI Symbol', 'Noto Sans', Roboto, sans-serif; line-height: 1.75; font-size: 16px; color: #000000; caret-color: #000000;\" data-provider=\"WenYan\">\n<p style=\"margin: 1em 0px;\"><code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">Array.prototype.reduce<\/code> \u6309\u987a\u5e8f\u5bf9\u6bcf\u4e2a\u5143\u7d20\u8dd1\u4f60\u63d0\u4f9b\u7684\u56de\u8c03\uff0c\u6bcf\u4e00\u6b21\u90fd\u628a\u300c\u5230\u76ee\u524d\u4e3a\u6b62\u7684\u6c47\u603b\u7ed3\u679c\u300d\u4f20\u8fdb\u53bb\uff0c\u6700\u540e\u6536\u6210<strong style=\"color: #4870ac;\">\u4e00\u4e2a\u8fd4\u56de\u503c<\/strong>\u3002\u6c42\u548c\u3001\u644a\u5e73\u3001\u8ba1\u6570\u3001\u53bb\u91cd\uff0c\u90fd\u53ef\u4ee5\u5199\u6210\u4e00\u6b21 reduce\u3002<\/p>\n<p style=\"margin: 1em 0px;\">\u7b7e\u540d\u662f <code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">reduce(callback, initValue?)<\/code>\u3002\u56de\u8c03\u53c2\u6570\u4f9d\u6b21\u4e3a <code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">previousValue<\/code>\u3001<code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">currentValue<\/code>\u3001<code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">currentIndex<\/code>\u3001<code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">arr<\/code>\u3002<code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">initValue<\/code> \u53ef\u9009\uff0c\u51b3\u5b9a\u7b2c\u4e00\u8f6e\u7684\u8d77\u70b9\u3002<\/p>\n<h2 style=\"padding: 1px 12.5px; color: #ffffff; margin: 1.2em 0px 1em; border-radius: 4px; display: inline-block; background-color: #4870ac; font-size: 1.3em;\">\u4e00\u3001\u6709\u6ca1\u6709\u521d\u59cb\u503c<\/h2>\n<table style=\"display: table; text-align: left; overflow: auto; border-collapse: collapse; margin: 1.4em auto; max-width: 100%; table-layout: fixed; overflow-wrap: break-word; word-break: break-all;\" width=\"800\">\n<thead>\n<tr>\n<th style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top; text-align: center; font-weight: bold; color: #4870ac; background: #f7f7f7;\">\u662f\u5426\u4f20\u5165 initValue<\/th>\n<th style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top; text-align: center; font-weight: bold; color: #4870ac; background: #f7f7f7;\">previousValue \u8d77\u70b9<\/th>\n<th style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top; text-align: center; font-weight: bold; color: #4870ac; background: #f7f7f7;\">currentValue \u8d77\u70b9<\/th>\n<th style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top; text-align: center; font-weight: bold; color: #4870ac; background: #f7f7f7;\">currentIndex \u8d77\u70b9<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">\u6709<\/td>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">\u5c31\u662f initValue<\/td>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\"><code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">arr[0]<\/code><\/td>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">0<\/td>\n<\/tr>\n<tr>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">\u65e0<\/td>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\"><code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">arr[0]<\/code><\/td>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\"><code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">arr[1]<\/code><\/td>\n<td style=\"border: 1px solid #d9dfe4; padding: 9px 12px; font-size: 0.75em; line-height: 22px; vertical-align: top;\">1<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"margin: 1em 0px;\">\u7a7a\u6570\u7ec4\u4e14\u4e0d\u7ed9\u521d\u59cb\u503c\u4f1a\u629b TypeError\u3002\u6709\u521d\u59cb\u503c\u65f6\uff0c\u7a7a\u6570\u7ec4\u76f4\u63a5\u8fd4\u56de\u8be5\u521d\u59cb\u503c\u3002<\/p>\n<h2 style=\"padding: 1px 12.5px; color: #ffffff; margin: 1.2em 0px 1em; border-radius: 4px; display: inline-block; background-color: #4870ac; font-size: 1.3em;\">\u4e8c\u3001\u5148\u770b\u904d\u5386\u987a\u5e8f<\/h2>\n<p style=\"margin: 1em 0px;\">\u6709\u521d\u59cb\u503c 0 \u65f6\uff0c\u7b2c\u4e00\u8f6e previous \u662f 0\uff0ccurrent \u4ece 4 \u8d77\uff1a<\/p>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">const test1 = () =&gt; {\n\tlet arr = [4, 6, 7, 9]\n\tarr.reduce((previousValue, currentValue, currentIndex) =&gt; {\n\t\tconsole.log(`previousValue:${previousValue}, currentValue:${currentValue}, currentIndex:${currentIndex}`)\n\t\treturn currentValue\n\t}, 0)\n}<\/code><\/pre>\n<p style=\"margin: 1em 0px;\">\u4e0d\u7ed9\u521d\u59cb\u503c\u65f6\uff0c\u7b2c\u4e00\u8f6e previous \u76f4\u63a5\u662f 4\uff0ccurrent \u4ece 6 \u8d77\uff1a<\/p>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">const test2 = () =&gt; {\n\tlet arr = [4, 6, 7, 9]\n\tarr.reduce((previousValue, currentValue, currentIndex) =&gt; {\n\t\tconsole.log(`previousValue:${previousValue}, currentValue:${currentValue}, currentIndex:${currentIndex}`)\n\t\treturn currentValue\n\t})\n}<\/code><\/pre>\n<h2 style=\"padding: 1px 12.5px; color: #ffffff; margin: 1.2em 0px 1em; border-radius: 4px; display: inline-block; background-color: #4870ac; font-size: 1.3em;\">\u4e09\u3001\u56db\u4e2a\u5178\u578b\u7528\u6cd5<\/h2>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u7d2f\u52a0<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">const test3 = () =&gt; {\n\tlet arr = [4, 6, 7, 9]\n\tlet sum = arr.reduce((previousValue, currentValue, currentIndex) =&gt; {\n\t\tconsole.log(previousValue) \/\/ 0,4,10,17\n\t\treturn previousValue + currentValue \/\/ 4,10,17,26\n\t}, 0)\n\tconsole.log(sum)\n}<\/code><\/pre>\n<p style=\"margin: 1em 0px;\">\u5bf9\u8c61\u6570\u7ec4\u540c\u6837\u53ef\u4ee5\uff0c\u628a <code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">score<\/code> \u52a0\u5230\u7d2f\u52a0\u5668\u4e0a\uff1a<\/p>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">const test4 = () =&gt; {\n\tlet arr = [\n\t\t{ name: 'jack', score: 98 },\n\t\t{ name: 'rose', score: 88 },\n\t\t{ name: 'tom', score: 90 },\n\t]\n\tlet total = arr.reduce((previousValue, currentValue) =&gt; currentValue.score + previousValue, 0)\n\tconsole.log(total)\n}<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u4e8c\u7ef4\u644a\u6210\u4e00\u7ef4<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">const test5 = () =&gt; {\n\tconst arr = [\n\t\t[1, 2],\n\t\t[3, 4],\n\t\t[5, 6],\n\t]\n\tconst newArr = arr.reduce((previousValue, currentValue) =&gt; [...previousValue, ...currentValue], [])\n\tconsole.log(newArr)\n}<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u7edf\u8ba1\u51fa\u73b0\u6b21\u6570<\/h3>\n<p style=\"margin: 1em 0px;\">\u628a\u5b57\u7b26\u4e32\u62c6\u6210\u5b57\u7b26\u6570\u7ec4\uff0c\u7d2f\u52a0\u5668\u662f\u5bf9\u8c61\u3002\u7528 <code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">in<\/code> \u5224\u65ad\u952e\u662f\u5426\u5df2\u5b58\u5728\uff1a<\/p>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">const test6 = () =&gt; {\n\tconst str = 'helloworldjavascript'\n\tconst arr = str.split('')\n\tconst obj = arr.reduce(\n\t\t(previousValue, currentValue) =&gt; {\n\t\t\tcurrentValue in previousValue ? previousValue[currentValue]++ : (previousValue[currentValue] = 1)\n\t\t\treturn previousValue\n\t\t}, {})\n\tconsole.log(obj)\n}<\/code><\/pre>\n<h3 style=\"padding: 0px; color: #4870ac; margin: 1.2em 0px 1em; font-size: 1.3em;\">\u53bb\u91cd<\/h3>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">const test7 = () =&gt; {\n\tconst arr = [1, 2, 3, 1, 2, 4, 5, 3]\n\tconst newArr = arr.reduce((previousValue, currentValue) =&gt; {\n\t\tif (previousValue.indexOf(currentValue) == -1) {\n\t\t\tpreviousValue.push(currentValue)\n\t\t}\n\t\treturn previousValue\n\t}, [])\n\tconsole.log(newArr)\n}<\/code><\/pre>\n<h2 style=\"padding: 1px 12.5px; color: #ffffff; margin: 1.2em 0px 1em; border-radius: 4px; display: inline-block; background-color: #4870ac; font-size: 1.3em;\">\u56db\u3001\u81ea\u5df1\u5b9e\u73b0\u4e00\u4e2a reduce<\/h2>\n<p style=\"margin: 1em 0px;\">\u5148\u7528 <code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">Object.prototype.toString.call<\/code> \u5206\u6e05 Function \/ Array \/ \u5176\u5b83\u7c7b\u578b\uff0c\u518d\u6309\u300c\u6709\u65e0\u521d\u59cb\u503c\u300d\u51b3\u5b9a\u8d77\u70b9\u4e0b\u6807\uff1a<\/p>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">const test8 = () =&gt; {\n\tlet callback = null \/\/ [object Null]\n\tlet value = Object.prototype.toString.call(callback)\n\tconsole.log(value)\n}<\/code><\/pre>\n<pre style=\"overflow: auto hidden; word-break: normal; white-space: pre; tab-size: 2; border-radius: 5px; line-height: 2; margin: 1em 0.5em; padding: 0.5em; box-shadow: rgba(0, 0, 0, 0.55) 0px 1px 5px; font-size: 12px; background: #002b36; max-width: 100%; overflow-wrap: normal;\"><code class=\"hljs\" style=\"word-break: normal; white-space: nowrap; tab-size: 2; font-size: 12px; font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; display: block; overflow-x: auto; margin: 0.5em; padding: 3px 5px; color: #93a1a1; background: #002b36; overflow-wrap: normal;\">Array.prototype.myReduce = function (callback, init) {\n\tif (Object.prototype.toString.call(callback) !== '[object Function]') {\n\t\tthrow new TypeError('callback is not Function')\n\t}\n\tif (Object.prototype.toString.call(this) !== '[object Array]') {\n\t\tthrow new TypeError('not Array')\n\t}\n\tif (this.length === 0 &amp;&amp; init === undefined) {\n\t\tthrow new TypeError('Reduce of empty arr with no initial value')\n\t}\n\tlet index = init === undefined ? 1 : 0\n\tlet previousValue = init === undefined ? this[0] : init\n\tconst len = this.length\n\twhile (index &lt; len) {\n\t\tconst currentValue = this[index]\n\t\tpreviousValue = callback(previousValue, currentValue, index, this)\n\t\tindex++\n\t}\n\treturn previousValue\n}<\/code><\/pre>\n<p style=\"margin: 1em 0px;\">\u539f\u6587\u7528 <code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">!callback &amp;&amp; toString !== Function<\/code> \u5224\u65ad\uff0c\u7a7a\u51fd\u6570\u5bf9\u8c61\u4f1a\u6f0f\u68c0\uff1b\u8fd9\u91cc\u6539\u6210\u53ea\u8ba4 <code style=\"font-family: Menlo, Monaco, Consolas, 'Liberation Mono', 'Roboto Mono', 'Courier New', 'Microsoft YaHei', monospace; color: #4870ac; font-size: 0.9em; font-weight: normal; overflow-wrap: break-word; padding: 2px 4px; border-radius: 3px; margin: 2px; background-color: #f6f8fa; word-break: break-all;\">[object Function]<\/code>\u3002\u7a7a\u6570\u7ec4\u9519\u8bef\u4fe1\u606f\u91cc\u7684 inital \u4e5f\u6539\u6210\u4e86 initial\u3002<\/p>\n<blockquote style=\"display: block; font-size: 0.9em; border-left: 3px solid #4870ac; padding: 0.5em 1em; margin: 0px; background: #f6f8fa; color: #40464f;\">\n<p style=\"margin: 1em 0px;\"><strong style=\"color: #4870ac;\">\u4e00\u53e5\u8bdd\u603b\u7ed3\uff1areduce \u5c31\u662f\u5e26\u7d2f\u52a0\u5668\u7684\u904d\u5386\uff1a\u5148\u5b9a\u521d\u59cb\u503c\uff0c\u518d\u8ba9\u6bcf\u4e00\u8f6e\u7684\u8fd4\u56de\u503c\u6210\u4e3a\u4e0b\u4e00\u8f6e\u7684 previousValue\uff0c\u6700\u540e\u5f97\u5230\u4e00\u4e2a\u7ed3\u679c\u3002<\/strong><\/p>\n<\/blockquote>\n<\/section>\n","protected":false},"excerpt":{"rendered":"<p>Array.prototype.reduce \u6309\u987a\u5e8f\u5bf9\u6bcf\u4e2a\u5143\u7d20\u8dd1\u4f60\u63d0\u4f9b\u7684\u56de\u8c03\uff0c\u6bcf\u4e00\u6b21\u90fd\u628a\u300c\u5230\u76ee\u524d\u4e3a\u6b62\u7684\u6c47\u603b\u7ed3\u679c [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[109,105],"tags":[150,158],"_links":{"self":[{"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=\/wp\/v2\/posts\/3281"}],"collection":[{"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3281"}],"version-history":[{"count":3,"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=\/wp\/v2\/posts\/3281\/revisions"}],"predecessor-version":[{"id":3318,"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=\/wp\/v2\/posts\/3281\/revisions\/3318"}],"wp:attachment":[{"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3281"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3281"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3281"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}