好程式設計師分享javascript中陣列化的一般見解

好程式設計師IT發表於2019-04-19

    好程式設計師 分享 javascript中陣列化的一般見解,陣列化瀏覽器中存在許多類陣列物件,往往對類陣列操作比較麻煩,沒有陣列那些非常方便的方法,在這種情況下,就有了陣列化方法。
  陣列化的一般方法
  1.第一種也是我們最常見的的方法,[].slice.call方法
   function toArray(obj){

1.  <p><font size="3">  return [].slice.call(obj);</font></p>

2.  <p><font size="3">  //Array.prototype.slice.call();</font></p>

3.  <p><font size="3">  }</font></p>
  Ps:這種方法,其實就是引用方法,註釋的部分為完全寫法,返回的就是一個陣列物件。

  2.第二種方法借鑑的是jq中的makeArray方法
   function makeArray(obj){

1.  <p><font size="3">  var target = [];</font></p>

2.  <p><font size="3">  if(obj != null){</font></p>

3.  <p><font size="3">  var i = obj.length;</font></p>

4.  <p><font size="3">  if(i = null || typeof obj === 'string' || typeof obj === 'function' || 

5.  obj.setInterval){//</font></p>

     如果是字串、函式win物件,就把這個元素付給建立陣列的第一個元素返回出去;
   target[0] = obj;

1.  <p><font size="3">  }else{//如果不是以上那些元素,透過迴圈把obj中每一個賦給target的每一個索引;</font></p>

2.  <p><font size="3">  while(i){</font></p>

3.  <p><font size="3">  target[--i] = obj[i];</font></p>

4.  <p><font size="3">  }</font></p>

5.  <p><font size="3">  }</font></p>

6.  <p><font size="3">  }</font></p>

7.  <p><font size="3">  return target;</font></p>


  }

  3.第三種方法
   function $arr(ele) {

1.  <p><font size="3">  if (!ele){</font></p>

2.  <p><font size="3">  return [];</font></p>

3.  <p><font size="3">  }</font></p>

4.  <p><font size="3">  if (ele.toArray){</font></p>

5.  <p><font size="3">  return ele.toArray();</font></p>

6.  <p><font size="3">  }</font></p>

7.  <p><font size="3">  var length = ele.length || 0, results = new Array(length);</font></p>

8.  <p><font size="3">  while (length--){</font></p>

9.  <p><font size="3">  results[length] = ele[length];</font></p>

10.  <p><font size="3">  }</font></p>

11.  <p><font size="3">  return results;</font></p>

12.  <p><font size="3">  }</font></p>


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913892/viewspace-2641966/,如需轉載,請註明出處,否則將追究法律責任。

相關文章