{"id":2485,"date":"2020-03-25T11:52:09","date_gmt":"2020-03-25T03:52:09","guid":{"rendered":"http:\/\/www.yuguoxy.com\/geekhome\/?p=2485"},"modified":"2020-03-25T21:20:03","modified_gmt":"2020-03-25T13:20:03","slug":"js%e6%95%b0%e7%bb%84%e5%b8%b8%e7%94%a8%e9%81%8d%e5%8e%86%e6%96%b9%e6%b3%95","status":"publish","type":"post","link":"https:\/\/ai.zhousir.top\/?p=2485","title":{"rendered":"js\u6570\u7ec4\u5e38\u7528\u904d\u5386\u65b9\u6cd5"},"content":{"rendered":"<h2>\u524d\u8a00<\/h2>\n<p>\u672c\u6587\u4e3b\u8981\u4ecb\u7ecd\u6570\u7ec4\u5e38\u89c1\u904d\u5386\u65b9\u6cd5\uff1aforEach\u3001map\u3001filter\u3001find\u3001every\u3001some\u3001reduce\uff0c\u5b83\u4eec\u6709\u4e2a\u5171\u540c\u70b9\uff1a\u4e0d\u4f1a\u6539\u53d8\u539f\u59cb\u6570\u7ec4\u3002<\/p>\n<h2>\u4e00\u3001forEach\uff1a\u904d\u5386\u6570\u7ec4<\/h2>\n<pre><code class='language-javascript' lang='javascript'>var colors = [&quot;red&quot;,&quot;blue&quot;,&quot;green&quot;];\r\n\/\/ ES5\u904d\u5386\u6570\u7ec4\u65b9\u6cd5\r\nfor(var i = 0; i &lt; colors.length; i++){ \r\n console.log(colors[i]);\/\/red blue green\r\n}\r\n\/\/ ES6 forEach\r\ncolors.forEach(function(color){\r\n console.log(color);\/\/red blue green\r\n});\r\n<\/code><\/pre>\n<p>\u6211\u4eec\u518d\u6765\u770b\u4e2a\u4f8b\u5b50\uff1a\u904d\u5386\u6570\u7ec4\u4e2d\u7684\u503c,\u5e76\u8ba1\u7b97\u603b\u548c<\/p>\n<pre><code class='language-javascript' lang='javascript'>var numbers = [1,2,3,4,5];\r\nvar sum = 0;\r\nnumbers.forEach(number=&gt;sum+=number)\r\nconsole.log(sum)\/\/15\r\n<\/code><\/pre>\n<h2>\u4e8c\u3001map\uff1a\u5c06\u6570\u7ec4\u6620\u5c04\u6210\u53e6\u4e00\u4e2a\u6570\u7ec4<\/h2>\n<p><strong>map\u901a\u8fc7\u6307\u5b9a\u51fd\u6570\u5904\u7406\u6570\u7ec4\u7684\u6bcf\u4e2a\u5143\u7d20\uff0c\u5e76\u8fd4\u56de\u5904\u7406\u540e\u65b0\u7684\u6570\u7ec4\uff0cmap \u4e0d\u4f1a\u6539\u53d8\u539f\u59cb\u6570\u7ec4\u3002<\/strong><\/p>\n<p><strong>forEach\u548cmap\u7684\u533a\u522b\u5728\u4e8e\uff0cforEach\u6ca1\u6709\u8fd4\u56de\u503c\u3002<\/strong><br \/>\n<strong>map\u9700\u8981\u8fd4\u56de\u503c\uff0c\u5982\u679c\u4e0d\u7ed9return\uff0c\u9ed8\u8ba4\u8fd4\u56deundefined<\/strong><\/p>\n<p><strong>\u4f7f\u7528\u573a\u666f1<\/strong><br \/>\n\u5047\u5b9a\u6709\u4e00\u4e2a\u6570\u503c\u6570\u7ec4(A),\u5c06A\u6570\u7ec4\u4e2d\u7684\u503c\u4ee5\u53cc\u500d\u7684\u5f62\u5f0f\u653e\u5230B\u6570\u7ec4<\/p>\n<pre><code class='language-javascript' lang='javascript'>var numbers = [1,2,3];\r\nvar doubledNumbers = [];\r\n\/\/ es5\u5199\u6cd5\r\nfor(var i = 0; i &lt; numbers.length; i++){\r\n doubledNumbers.push(numbers[i] * 2);\r\n}\r\nconsole.log(doubledNumbers);\/\/[2,4,6]\r\n\/\/ es6 map\u65b9\u6cd5\r\nvar doubled = numbers.map(function(number){\r\n   return number * 2;\r\n})\r\nconsole.log(doubled);\/\/[2,4,6]\r\n<\/code><\/pre>\n<p><strong>\u4f7f\u7528\u573a\u666f2<\/strong> \u5047\u5b9a\u6709\u4e00\u4e2a\u5bf9\u8c61\u6570\u7ec4(A),\u5c06A\u6570\u4e2d\u5bf9\u8c61\u67d0\u4e2a\u5c5e\u6027\u7684\u503c\u5b58\u50a8\u5230B\u6570\u7ec4\u4e2d<\/p>\n<pre><code class='language-javascript' lang='javascript'>var cars = [\r\n  {model:&quot;Buick&quot;,price:&quot;CHEAP&quot;},\r\n  {model:&quot;BMW&quot;,price:&quot;expensive&quot;}\r\n];\r\nvar prices = cars.map(function(car){\r\n    return car.price;\r\n})\r\nconsole.log(prices);\/\/[&quot;CHEAP&quot;, &quot;expensive&quot;]\r\n<\/code><\/pre>\n<h2>\u4e09\u3001filter\uff1a\u4ece\u6570\u7ec4\u4e2d\u627e\u51fa\u6240\u6709\u7b26\u5408\u6307\u5b9a\u6761\u4ef6\u7684\u5143\u7d20<\/h2>\n<p><strong>filter() \u68c0\u6d4b\u6570\u503c\u5143\u7d20\uff0c\u5e76\u8fd4\u56de\u7b26\u5408\u6761\u4ef6\u6240\u6709\u5143\u7d20\u7684\u6570\u7ec4\u3002 filter() \u4e0d\u4f1a\u6539\u53d8\u539f\u59cb\u6570\u7ec4\u3002<\/strong><\/p>\n<p><strong>\u4f7f\u7528\u573a\u666f1<\/strong>\uff1a\u5047\u5b9a\u6709\u4e00\u4e2a\u5bf9\u8c61\u6570\u7ec4(A),\u83b7\u53d6\u6570\u7ec4\u4e2d\u6307\u5b9a\u7c7b\u578b\u7684\u5bf9\u8c61\u653e\u5230B\u6570\u7ec4\u4e2d<\/p>\n<pre><code class='language-javascript' lang='javascript'>var porducts = [\r\n  {name:&quot;cucumber&quot;,type:&quot;vegetable&quot;},\r\n  {name:&quot;banana&quot;,type:&quot;fruit&quot;},\r\n  {name:&quot;celery&quot;,type:&quot;vegetable&quot;},\r\n  {name:&quot;orange&quot;,type:&quot;fruit&quot;}\r\n];\r\n\/\/ es5\u5199\u6cd5\r\nvar filteredProducts = [];\r\nfor(var i = 0; i &lt; porducts.length; i++){\r\n    if(porducts[i].type === &quot;vegetable&quot;){\r\n      filteredProducts.push(porducts[i]);\r\n    }\r\n}\r\nconsole.log(filteredProducts);\/\/[{name: &quot;cucumber&quot;, type: &quot;vegetable&quot;},\r\n                                 {name: &quot;celery&quot;, type: &quot;vegetable&quot;}]\r\n\/\/ es6 filter\r\nvar filtered2 = porducts.filter(function(product){\r\n  return product.type === &quot;vegetable&quot;;\r\n})\r\nconsole.log(filtered2);\r\n<\/code><\/pre>\n<p><strong>\u4f7f\u7528\u573a\u666f2<\/strong>\uff1a\u5047\u5b9a\u6709\u4e00\u4e2a\u5bf9\u8c61\u6570\u7ec4(A),\u8fc7\u6ee4\u6389\u4e0d\u6ee1\u8db3\u4ee5\u4e0b\u6761\u4ef6\u7684\u5bf9\u8c61<br \/>\n\u6761\u4ef6: \u852c\u83dc \u6570\u91cf\u5927\u4e8e0,\u4ef7\u683c\u5c0f\u4e8e10<\/p>\n<pre><code class='language-javascript' lang='javascript'>var products = [\r\n  {name:&quot;cucumber&quot;,type:&quot;vegetable&quot;,quantity:0,price:1},\r\n  {name:&quot;banana&quot;,type:&quot;fruit&quot;,quantity:10,price:16},\r\n  {name:&quot;celery&quot;,type:&quot;vegetable&quot;,quantity:30,price:8},\r\n  {name:&quot;orange&quot;,type:&quot;fruit&quot;,quantity:3,price:6}\r\n];\r\nproducts = products.filter(function(product){\r\n    return product.type === &quot;vegetable&quot; \r\n    &amp;&amp; product.quantity &gt; 0 \r\n    &amp;&amp; product.price &lt; 10\r\n})\r\nconsole.log(products);\/\/[{name:&quot;celery&quot;,type:&quot;vegetable&quot;,quantity:30,price:8}]\r\n<\/code><\/pre>\n<p><strong>\u4f7f\u7528\u573a\u666f3<\/strong>\uff1a\u5047\u5b9a\u6709\u4e24\u4e2a\u6570\u7ec4(A,B),\u6839\u636eA\u4e2did\u503c,\u8fc7\u6ee4\u6389B\u6570\u7ec4\u4e0d\u7b26\u5408\u7684\u6570\u636e<\/p>\n<pre><code class='language-javascript' lang='javascript'>var post = {id:4,title:&quot;Javascript&quot;};\r\nvar comments = [\r\n   {postId:4,content:&quot;Angular4&quot;},\r\n   {postId:2,content:&quot;Vue.js&quot;},\r\n   {postId:3,content:&quot;Node.js&quot;},\r\n   {postId:4,content:&quot;React.js&quot;},\r\n];\r\nfunction commentsForPost(post,comments){\r\n   return comments.filter(function(comment){\r\n     return comment.postId === post.id;\r\n   })\r\n}\r\nconsole.log(commentsForPost(post,comments));\/\/[{postId:4,content:&quot;Angular4&quot;},{postId:4,content:&quot;React.js&quot;}]\r\n<\/code><\/pre>\n<h2>\u56db\u3001find\uff1a\u8fd4\u56de\u901a\u8fc7\u6d4b\u8bd5\uff08\u51fd\u6570\u5185\u5224\u65ad\uff09\u7684\u6570\u7ec4\u7684\u7b2c\u4e00\u4e2a\u5143\u7d20\u7684\u503c<\/h2>\n<p><strong>\u5b83\u7684\u53c2\u6570\u662f\u4e00\u4e2a\u56de\u8c03\u51fd\u6570\uff0c\u6240\u6709\u6570\u7ec4\u6210\u5458\u4f9d\u6b21\u6267\u884c\u8be5\u56de\u8c03\u51fd\u6570\uff0c\u76f4\u5230\u627e\u51fa\u7b2c\u4e00\u4e2a\u8fd4\u56de\u503c\u4e3atrue\u7684\u6210\u5458\uff0c\u7136\u540e\u8fd4\u56de\u8be5\u6210\u5458\u3002\u5982\u679c\u6ca1\u6709\u7b26\u5408\u6761\u4ef6\u7684\u6210\u5458\uff0c\u5219\u8fd4\u56deundefined\u3002<\/strong><br \/>\n<strong>\u4f7f\u7528\u573a\u666f1<\/strong><br \/>\n\u5047\u5b9a\u6709\u4e00\u4e2a\u5bf9\u8c61\u6570\u7ec4(A),\u627e\u5230\u7b26\u5408\u6761\u4ef6\u7684\u5bf9\u8c61<\/p>\n<pre><code class='language-javascript' lang='javascript'> var users = [\r\n  {name:&quot;Jill&quot;},\r\n  {name:&quot;Alex&quot;,id:2},\r\n  {name:&quot;Bill&quot;},\r\n  {name:&quot;Alex&quot;}\r\n ];\r\n\/\/ es5\u65b9\u6cd5\r\n var user;\r\n for(var i = 0; i &lt; users.length; i++){\r\n  if(users[i].name === &quot;Alex&quot;){\r\n    user = users[i];\r\n    break;\/\/\u627e\u5230\u540e\u5c31\u7ec8\u6b62\u5faa\u73af\r\n  }\r\n }\r\n console.log(user);\/\/ {name:&quot;Alex&quot;,id:2}\r\n\/\/ es6 find\r\nuser = users.find(function(user){\r\n  return user.name === &quot;Alex&quot;;\r\n})\r\nconsole.log(user);\/\/ {name:&quot;Alex&quot;,id:2}\u627e\u5230\u540e\u5c31\u7ec8\u6b62\u5faa\u73af\r\n<\/code><\/pre>\n<p><strong>\u4f7f\u7528\u573a\u666f2<\/strong>\uff1a\u5047\u5b9a\u6709\u4e00\u4e2a\u5bf9\u8c61\u6570\u7ec4(A),\u6839\u636e\u6307\u5b9a\u5bf9\u8c61\u7684\u6761\u4ef6\u627e\u5230\u6570\u7ec4\u4e2d\u7b26\u5408\u6761\u4ef6\u7684\u5bf9\u8c61<\/p>\n<pre><code class='language-javascript' lang='javascript'>var posts = [\r\n {id:3,title:&quot;Node.js&quot;},\r\n {id:1,title:&quot;React.js&quot;}\r\n];\r\nvar comment = {postId:1,content:&quot;Hello World!&quot;};\r\nfunction postForComment(posts,comment){\r\n return posts.find(function(post){\r\n   return post.id === comment.postId;\r\n })\r\n}\r\nconsole.log(postForComment(posts,comment));\/\/{id: 1, title: &quot;React.js&quot;}\r\n<\/code><\/pre>\n<h2>\u4e94\u3001every&amp;some<\/h2>\n<p><strong>every\uff1a\u6570\u7ec4\u4e2d\u662f\u5426\u6bcf\u4e2a\u5143\u7d20\u90fd\u6ee1\u8db3\u6307\u5b9a\u7684\u6761\u4ef6<\/strong><\/p>\n<p><strong>some:\u6570\u7ec4\u4e2d\u662f\u5426\u6709\u5143\u7d20\u6ee1\u8db3\u6307\u5b9a\u7684\u6761\u4ef6<\/strong><\/p>\n<p><strong>\u4f7f\u7528\u573a\u666f1<\/strong>\uff1a\u8ba1\u7b97\u5bf9\u8c61\u6570\u7ec4\u4e2d\u6bcf\u4e2a\u7535\u8111\u64cd\u4f5c\u7cfb\u7edf\u662f\u5426\u53ef\u7528\uff0c\u5927\u4e8e16\u4f4d\u64cd\u4f5c\u7cfb\u7edf\u8868\u793a\u53ef\u7528,\u5426\u5219\u4e0d\u53ef\u7528<\/p>\n<pre><code class='language-javascript' lang='javascript'>\/\/ES5\u65b9\u6cd5\r\nvar computers = [\r\n {name:&quot;Apple&quot;,ram:16},\r\n {name:&quot;IBM&quot;,ram:4},\r\n {name:&quot;Acer&quot;,ram:32}\r\n];\r\nvar everyComputersCanRunProgram = true;\r\nvar someComputersCanRunProgram = false;\r\nfor(var i = 0; i &lt; computers.length; i++){\r\n var computer = computers[i];\r\n if(computer.ram &lt; 16){\r\n   everyComputersCanRunProgram = false;\r\n }else{\r\n   someComputersCanRunProgram = true;\r\n }\r\n}\r\nconsole.log(everyComputersCanRunProgram);\/\/false\r\nconsole.log(someComputersCanRunProgram);\/\/true\r\n\/\/ES6 some every \r\nvar every = computers.every(function(computer){\r\n  return computer.ram &gt; 16;\r\n})\r\nconsole.log(every);\/\/false\r\nvar some = computers.some(function(computer){\r\n return computer.ram &gt; 16;\r\n})\r\nconsole.log(some);\/\/true\r\n<\/code><\/pre>\n<p><strong>\u4e00\u8a00\u4ee5\u853d\u4e4b\uff1aSome: \u4e00\u771f\u5373\u771f\uff1bEvery: \u4e00\u5047\u5373\u5047<\/strong><\/p>\n<p><strong>\u4f7f\u7528\u573a\u666f2<\/strong>\uff1a\u5047\u5b9a\u6709\u4e00\u4e2a\u6ce8\u518c\u9875\u9762,\u5224\u65ad\u6240\u6709input\u5185\u5bb9\u7684\u957f\u5ea6\u662f\u5426\u5927\u4e8e0<\/p>\n<pre><code class='language-javascript' lang='javascript'>function Field(value){\r\n  this.value = value;\r\n}\r\nField.prototype.validate = function(){\r\n  return this.value.length &gt; 0;\r\n}\r\n\/\/ES5\u65b9\u6cd5\r\nvar username = new Field(&quot;henrywu&quot;);\r\nvar telephone = new Field(&quot;18888888888&quot;);\r\nvar password = new Field(&quot;my_password&quot;);\r\nconsole.log(username.validate());\/\/true\r\nconsole.log(telephone.validate());\/\/true\r\nconsole.log(password.validate());\/\/true\r\n\/\/ES6 some every\r\nvar fields = [username,telephone,password];\r\nvar formIsValid = fields.every(function(field){\r\n return field.validate();\r\n})\r\nconsole.log(formIsValid);\/\/true\r\nif(formIsValid){\r\n \/\/ \u6ce8\u518c\u6210\u529f\r\n}else{\r\n  \/\/ \u7ed9\u7528\u6237\u4e00\u4e2a\u53cb\u5584\u7684\u9519\u8bef\u63d0\u9192\r\n}\r\n<\/code><\/pre>\n<h2>\u516d\u3001reduce\uff1a\u5c06\u6570\u7ec4\u5408\u6210\u4e00\u4e2a\u503c<\/h2>\n<p><strong>reduce() \u65b9\u6cd5\u63a5\u6536\u4e00\u4e2a\u65b9\u6cd5\u4f5c\u4e3a\u7d2f\u52a0\u5668\uff0c\u6570\u7ec4\u4e2d\u7684\u6bcf\u4e2a\u503c(\u4ece\u5de6\u81f3\u53f3) \u5f00\u59cb\u5408\u5e76\uff0c\u6700\u7ec8\u4e3a\u4e00\u4e2a\u503c\u3002<\/strong><\/p>\n<p><strong>\u4f7f\u7528\u573a\u666f1<\/strong>\uff1a \u8ba1\u7b97\u6570\u7ec4\u4e2d\u6240\u6709\u503c\u7684\u603b\u548c<\/p>\n<pre><code class='language-javascript' lang='javascript'> var numbers = [10,20,30];\r\n var sum = 0;\r\n\/\/es5 \u65b9\u6cd5\r\nfor(var i = 0; i &lt; numbers.length; i++){\r\n  sum += numbers[i];\r\n}\r\nconsole.log(sum);\r\n\/\/ es6 reduce\r\nvar sumValue = numbers.reduce(function(sum2,number2){\r\n  console.log(sum2);\/\/0 10 30 60\r\n  return sum2 + number2;\r\n},0);\/\/sum2\u521d\u59cb\u503c\u4e3a0\r\nconsole.log(sumValue);\r\n<\/code><\/pre>\n<p><strong>\u4f7f\u7528\u573a\u666f2<\/strong>\uff1a<br \/>\n\u5c06\u6570\u7ec4\u4e2d\u5bf9\u8c61\u7684\u67d0\u4e2a\u5c5e\u6027\u62bd\u79bb\u5230\u53e6\u5916\u4e00\u4e2a\u6570\u7ec4\u4e2d<\/p>\n<pre><code class='language-javascript' lang='javascript'> var primaryColors = [\r\n   {color:&quot;red&quot;},\r\n   {color:&quot;yellow&quot;},\r\n   {color:&quot;blue&quot;}\r\n ];\r\n var colors = primaryColors.reduce(function(previous,primaryColor){\r\n    previous.push(primaryColor.color);\r\n    return previous;\r\n },[]);\r\n console.log(colors);\/\/[&quot;red&quot;, &quot;yellow&quot;, &quot;blue&quot;]\r\n<\/code><\/pre>\n<p><strong>\u4f7f\u7528\u573a\u666f3<\/strong>\uff1a\u5224\u65ad\u5b57\u7b26\u4e32\u4e2d\u62ec\u53f7\u662f\u5426\u5bf9\u79f0<\/p>\n<pre><code class='language-javascript' lang='javascript'>function balancedParens(string){\r\n  return !string.split(&quot;&quot;).reduce(function(previous,char){\r\n    if(previous &lt; 0) { return previous;}\r\n    if(char == &quot;(&quot;){ return ++previous;}\r\n    if(char == &quot;)&quot;){ return --previous;}\r\n    return previous;\r\n  },0);\r\n}\r\nconsole.log(balancedParens(&quot;((())))&quot;));\r\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u524d\u8a00 \u672c\u6587\u4e3b\u8981\u4ecb\u7ecd\u6570\u7ec4\u5e38\u89c1\u904d\u5386\u65b9\u6cd5\uff1aforEach\u3001map\u3001filter\u3001find\u3001every\u3001some\u3001re [&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":[],"_links":{"self":[{"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=\/wp\/v2\/posts\/2485"}],"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=2485"}],"version-history":[{"count":8,"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=\/wp\/v2\/posts\/2485\/revisions"}],"predecessor-version":[{"id":2502,"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=\/wp\/v2\/posts\/2485\/revisions\/2502"}],"wp:attachment":[{"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2485"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2485"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ai.zhousir.top\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2485"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}