{"id":601,"date":"2025-12-07T10:13:40","date_gmt":"2025-12-07T02:13:40","guid":{"rendered":"https:\/\/www.52runoob.com\/?p=601"},"modified":"2025-12-07T10:13:40","modified_gmt":"2025-12-07T02:13:40","slug":"javascript%e6%95%b0%e7%bb%84%e5%8e%bb%e9%87%8d%e5%b8%b8%e8%a7%81%e5%9b%9b%e7%a7%8d%e6%96%b9%e6%b3%95%e6%9c%80%e6%96%b0%e6%95%b4%e7%90%86","status":"publish","type":"post","link":"https:\/\/www.52runoob.com\/index.php\/2025\/12\/07\/javascript%e6%95%b0%e7%bb%84%e5%8e%bb%e9%87%8d%e5%b8%b8%e8%a7%81%e5%9b%9b%e7%a7%8d%e6%96%b9%e6%b3%95%e6%9c%80%e6%96%b0%e6%95%b4%e7%90%86\/","title":{"rendered":"JavaScript\u6570\u7ec4\u53bb\u91cd\u5e38\u89c1\u56db\u79cd\u65b9\u6cd5(\u6700\u65b0\u6574\u7406)"},"content":{"rendered":"\n<p>\u4e0b\u9762\u7ed9\u4f60\u4e00\u4efd <strong>\u6700\u65b0\u6574\u7406\u7684 JavaScript \u6570\u7ec4\u53bb\u91cd\u56db\u5927\u5e38\u89c1\u65b9\u6cd5<\/strong>\uff0c\u5305\u542b\u5199\u6cd5\u3001\u539f\u7406\u3001\u4f18\u7f3a\u70b9\u4e0e\u6700\u4f73\u5b9e\u8df5\uff0c\u4e00\u770b\u5c31\u660e\u767d\u3001\u53ef\u76f4\u63a5\u7528\u4e8e\u9762\u8bd5\u7b14\u8bb0\u3002<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\u2705 1. \u4f7f\u7528 ES6 Set \u53bb\u91cd\uff08\u6700\u63a8\u8350\uff09<\/h1>\n\n\n\n<h3 class=\"wp-block-heading\">\u2714 \u5199\u6cd5\u6700\u77ed<\/h3>\n\n\n\n<h3 class=\"wp-block-heading\">\u2714 \u6027\u80fd\u6700\u597d<\/h3>\n\n\n\n<h3 class=\"wp-block-heading\">\u2714 \u53ef\u53bb\u9664\u6240\u6709\u91cd\u590d\uff0c\u5305\u62ec\u5bf9\u8c61\u5f15\u7528\u4e00\u81f4\u7684\u60c5\u51b5<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nconst arr = &#x5B;1, 2, 2, 3, 4, 4];\n\nconst result = &#x5B;...new Set(arr)];\nconsole.log(result); \/\/ &#x5B;1, 2, 3, 4]\n\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\">\u9002\u7528\u573a\u666f<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u6570\u5b57\u3001\u5b57\u7b26\u4e32\u3001\u5e03\u5c14\u7b49\u57fa\u7840\u7c7b\u578b<\/li>\n\n\n\n<li>\u5bf9\u8c61\u5f15\u7528\u76f8\u540c\u7684\u60c5\u51b5\u4e5f\u80fd\u5904\u7406<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u4e0d\u9002\u7528<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5bf9\u8c61\u5185\u5bb9\u76f8\u540c\u4f46\u5f15\u7528\u4e0d\u540c\uff08Set \u8ba4\u4e3a\u4e0d\u76f8\u7b49\uff09<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nconst arr = &#x5B;{a:1}, {a:1}];\nnew Set(arr); \/\/ \u4e0d\u53bb\u91cd\n\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\u2705 2. \u4f7f\u7528 filter + indexOf \u53bb\u91cd\uff08\u4f20\u7edf\u65b9\u6cd5\uff09<\/h1>\n\n\n\n<h3 class=\"wp-block-heading\">\u539f\u7406\uff1a<\/h3>\n\n\n\n<p><code>indexOf<\/code> \u603b\u662f\u8fd4\u56de\u5143\u7d20\u7b2c\u4e00\u6b21\u51fa\u73b0\u7684\u4f4d\u7f6e\u3002<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nconst arr = &#x5B;1, 2, 2, 3];\n\nconst result = arr.filter((item, index) =&gt; {\n  return arr.indexOf(item) === index;\n});\n\nconsole.log(result);  \/\/ &#x5B;1, 2, 3]\n\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\">\u4f18\u70b9<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u53ef\u8bfb\u6027\u5f3a<\/li>\n\n\n\n<li>\u517c\u5bb9\u8001\u6d4f\u89c8\u5668\uff08ES5\uff09<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u7f3a\u70b9<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u65f6\u95f4\u590d\u6742\u5ea6 O(n\u00b2)<\/strong>\uff08\u56e0\u4e3a indexOf \u5185\u90e8\u662f\u5faa\u73af\uff09<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\u2705 3. \u4f7f\u7528 reduce + Map\uff08\u53ef\u5904\u7406\u5bf9\u8c61\u5185\u5bb9\u76f8\u540c\uff09<\/h1>\n\n\n\n<h3 class=\"wp-block-heading\">\u8fd9\u662f\u9879\u76ee\u4e2d\u9ad8\u7ea7\u5199\u6cd5\uff0c\u53ef\u6309\u5bf9\u8c61\u5b57\u6bb5\u53bb\u91cd\u3002<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nconst arr = &#x5B;\n  { id: 1, name: &quot;A&quot; },\n  { id: 1, name: &quot;A&quot; },\n  { id: 2, name: &quot;B&quot; }\n];\n\nconst result = arr.reduce((map, item) =&gt; {\n  if (!map.temp.has(item.id)) {\n    map.temp.add(item.id);\n    map.result.push(item);\n  }\n  return map;\n}, { temp: new Set(), result: &#x5B;] }).result;\n\nconsole.log(result);\n\/\/ &#x5B; { id: 1, name: &quot;A&quot; }, { id: 2, name: &quot;B&quot; } ]\n\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\">\u4f18\u70b9<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u53ef\u6309\u5bf9\u8c61\u4e2d\u67d0\u4e2a key \u53bb\u91cd<\/strong><\/li>\n\n\n\n<li>\u6027\u80fd\u6bd4 indexOf \u65b9\u6cd5\u597d\u5f88\u591a\uff08\u8fd1\u4f3c O(n)\uff09<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u7f3a\u70b9<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u4ee3\u7801\u91cf\u7a0d\u591a<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\u2705 4. \u4f7f\u7528 sort + \u904d\u5386\u76f8\u90bb\u5143\u7d20\uff08\u9002\u5408\u8d85\u5927\u6570\u7ec4\uff09<\/h1>\n\n\n\n<h3 class=\"wp-block-heading\">\u539f\u7406\uff1a<\/h3>\n\n\n\n<p>\u5148\u6392\u5e8f \u2192 \u76f8\u540c\u7684\u503c\u5c31\u5728\u4e00\u8d77 \u2192 \u9010\u4e2a\u6bd4\u8f83<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nconst arr = &#x5B;3, 1, 2, 2, 3];\n\nconst result = arr\n  .sort((a, b) =&gt; a - b)\n  .filter((item, index, array) =&gt; {\n    return index === 0 || item !== array&#x5B;index - 1];\n  });\n\nconsole.log(result);  \/\/ &#x5B;1, 2, 3]\n\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\">\u4f18\u70b9<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u6392\u5e8f\u540e\u53ea\u9700\u4e00\u6b21\u904d\u5386\uff0c\u6027\u80fd\u597d\uff08O(n log n)\uff09<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u7f3a\u70b9<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u6539\u53d8\u539f\u6570\u7ec4\u6392\u5e8f<\/li>\n\n\n\n<li>\u9700\u8981\u81ea\u5b9a\u4e49\u6392\u5e8f\u89c4\u5219\uff08\u5b57\u7b26\u4e32\u6570\u5b57\u7b49\uff09<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\ud83c\udfaf \u56db\u79cd\u65b9\u6cd5\u5bf9\u6bd4\u603b\u7ed3<\/h1>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u65b9\u6cd5<\/th><th>\u4ee3\u7801\u91cf<\/th><th>\u6027\u80fd<\/th><th>\u662f\u5426\u4fdd\u7559\u539f\u987a\u5e8f<\/th><th>\u5bf9\u8c61\u5185\u5bb9\u53bb\u91cd<\/th><\/tr><\/thead><tbody><tr><td><strong>Set<\/strong><\/td><td>\u6700\u5c11<\/td><td>\u2714\u2714\u2714\uff08\u6700\u5feb\uff09<\/td><td>\u2714<\/td><td>\u2718<\/td><\/tr><tr><td><strong>filter + indexOf<\/strong><\/td><td>\u4e2d\u7b49<\/td><td>\u2718\uff08\u6162\uff09<\/td><td>\u2714<\/td><td>\u2718<\/td><\/tr><tr><td><strong>reduce + Map\/Set<\/strong><\/td><td>\u8f83\u591a<\/td><td>\u2714\u2714<\/td><td>\u2714<\/td><td>\u2714\uff08\u6700\u4f73\uff09<\/td><\/tr><tr><td><strong>sort + \u904d\u5386<\/strong><\/td><td>\u4e00\u822c<\/td><td>\u2714\u2714<\/td><td>\u2718\uff08\u4f1a\u6392\u5e8f\uff09<\/td><td>\u2718<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\ud83d\udccc \u5b9e\u9645\u9879\u76ee\u4e2d\u7684\u6700\u4f73\u5b9e\u8df5\u63a8\u8350<\/h1>\n\n\n\n<h3 class=\"wp-block-heading\">\u2714 \u57fa\u7840\u7c7b\u578b\u6570\u7ec4\uff08\u6570\u5b57\/\u5b57\u7b26\u4e32\uff09<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n&#x5B;...new Set(arr)]\n\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\">\u2714 \u591a\u5b57\u6bb5\u5bf9\u8c61\u6570\u7ec4\u53bb\u91cd<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nreduce + Map\/Set\n\n<\/pre><\/div>\n\n\n<h3 class=\"wp-block-heading\">\u2714 \u5927\u6570\u636e\u91cf\u6570\u7ec4\uff0c\u9700\u8981\u6027\u80fd<\/h3>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nsort + \u904d\u5386\n\n<\/pre><\/div>","protected":false},"excerpt":{"rendered":"<p>\u4e0b\u9762\u7ed9\u4f60\u4e00\u4efd \u6700\u65b0\u6574\u7406\u7684 JavaScript \u6570\u7ec4\u53bb\u91cd\u56db\u5927\u5e38\u89c1\u65b9\u6cd5\uff0c\u5305\u542b\u5199\u6cd5\u3001&#8230; <a class=\"more-link\" href=\"https:\/\/www.52runoob.com\/index.php\/2025\/12\/07\/javascript%e6%95%b0%e7%bb%84%e5%8e%bb%e9%87%8d%e5%b8%b8%e8%a7%81%e5%9b%9b%e7%a7%8d%e6%96%b9%e6%b3%95%e6%9c%80%e6%96%b0%e6%95%b4%e7%90%86\/\">Continue Reading &rarr;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[49],"tags":[],"class_list":["post-601","post","type-post","status-publish","format-standard","hentry","category-javascript"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.52runoob.com\/index.php\/wp-json\/wp\/v2\/posts\/601","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.52runoob.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.52runoob.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.52runoob.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.52runoob.com\/index.php\/wp-json\/wp\/v2\/comments?post=601"}],"version-history":[{"count":1,"href":"https:\/\/www.52runoob.com\/index.php\/wp-json\/wp\/v2\/posts\/601\/revisions"}],"predecessor-version":[{"id":602,"href":"https:\/\/www.52runoob.com\/index.php\/wp-json\/wp\/v2\/posts\/601\/revisions\/602"}],"wp:attachment":[{"href":"https:\/\/www.52runoob.com\/index.php\/wp-json\/wp\/v2\/media?parent=601"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.52runoob.com\/index.php\/wp-json\/wp\/v2\/categories?post=601"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.52runoob.com\/index.php\/wp-json\/wp\/v2\/tags?post=601"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}