JavaScript練習筆記整理·4 - 6.26

来源:http://www.cnblogs.com/omoc/archive/2017/06/26/7079533.html
-Advertisement-
Play Games

求出字元串中位的字元(charAt()方法、substr()方法)、刪除字元串中重覆的字元並輸出(push()方法、call()方法、filter()方法)。 ...


基礎練習(1):

我的解答為:
function getMiddle(s) {
  if(s.length%2 == 0) {
    return s.charAt(s.length/2-1)+s.charAt(s.length/2);
  } else {
    return s.charAt(s.length/2);
  }
}

較優解答為:

function getMiddle(s)
{
  return s.substr(Math.ceil(s.length / 2 - 1), s.length % 2 === 0 ? 2 : 1);
}

 

分析: 我的做法是先判斷字元串的長度,根據長度來選擇需要返回的字元。而較優解中使用了substr()方法、Math.ceil()方法以及一個三元運算符。substr()方法可以創建新字元串、Math.ceil()方法用於對一個數進行上舍入。   筆記: charAt()方法,是用於訪問字元串中特定字元的方法,以單字元字元串的形式返回給定位置的那個字元,接收一個參數,即基於0的字元位置。   substr()方法,是基於自字元串創建新字元串的方法,返回被操作字元串的一個子字元串,且接收一或兩個參數,第一個參數指定子字元串的開始位置,第二個參數表示子字元串到哪裡結束。substr()的第二個參數指定的是返回的字元個數。若沒有傳遞第二個參數,則將字元串的末尾作為結束位置。對原字元串沒用影響。

基礎練習(2):

我的解答為:
var uniqueInOrder=function(iterable){
  var newarr = [];
  for(var i=0;i<iterable.length;i++) {
    if(iterable[i] !== iterable[i+1]) {
      newarr.push(iterable[i]);
    }
  }
  return newarr;
}

較優解答一:

function uniqueInOrder(it) {
  var result = []
  var last
 
  for (var i = 0; i < it.length; i++) {
    if (it[i] !== last) {
      result.push(last = it[i])
    }
  } 
  return result
}

較優解答二:

var uniqueInOrder = function (iterable)
{
  return [ ].filter.call(iterable, (function (a, i) { return iterable[i - 1] !== a }));
}

 

分析: 我的思路是基於當前字元串的判斷,判斷每一位與其下一位是否相等,若相等,則添加到新數組中。而較優解中則是,先設定新數組中一個值作為判定基礎,若是字元串中與數組中的值不相等,則添加到新數組中。  
PS:今天的狀態很差,心態上有一些比較消極的情緒,所以做的練習也少了,筆記也少了一些。(懶惰)    
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 報錯如下圖: 原因是之前template屬性使用的html模板內添加了script標簽,將其刪掉再使用chunks屬性自動添加即可。 ( 註釋掉也不可以,必須刪除! ) ...
  • function ajax(data){ //data{data:"",dataType:"xml/json",type:"get/post",url:"",asyn:"true/false",success:funtion(){},failure:function(){}} //datapost=... ...
  • 原型 每個函數都有一個prototype屬性,指向一個原型對象,這個對象專門保存特定類型的所有實例【共有的屬性和方法】。 所有原型對象都會自動獲得constructor屬性,指向構造函數。 在調用構造函數創建新實例對象時,會自動設置新實例的內部屬性[[Prototype]]指向構造函數的原型對象。 ...
  • HTML * Doctype作用?嚴格模式與混雜模式如何區分?它們有何意義? 1.<!DOCTYPE> 聲明位於文檔中的最前面的位置,處於 <html> 標簽之前。此標簽可告知瀏覽器文檔使用哪種 HTML 或 XHTML 規範 2. 所謂的標準模式是指,瀏覽器按 W3C 標準解析執行代碼;怪異模式則 ...
  • 1.SyntaxError(語法錯誤) 解析代碼時發生的語法錯誤 eg:var 1a; Uncaught SyntaxError: Unexpected number 2.ReferenceError(引用錯誤) a.引用了一個不存在的變數 eg: console.log(a); Uncaught ...
  • js中立即執行函數的應用:應用到事件綁定上。 少說多做,直接運行代碼(代碼中有註釋): 運行結果: 當點擊id為a1,a2,a3的div時分別觸發對應的事件。 ...
  • 感謝 LeaVerou 大神,讓我們可以提前使用上這麼美妙的屬性。 conic-gradient 是個什麼?說到 conic-gradient ,就不得不提的它的另外兩個兄弟: linear-gradient : 線性漸變 radial-gradient : 徑向漸變 說這兩個應該還是有很多人瞭解並 ...
  • 一.首先我們總結下行內元素和塊級元素有哪些: 行內元素: <a>標簽可定義錨<abbr>表示一個縮寫形式<acronym>定義只取首字母縮寫<b>字體加粗<bdo>可覆蓋預設的文本方向<big>大號字體加粗<br>換行<cite>引用進行定義<code>定義電腦代碼文本<dfn>定義一個定義項目< ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...