封裝陣列方法

2021-08-17 02:38:59 字數 4470 閱讀 2322

標籤(空格分隔): 未分類

push

/**

1: 封裝乙個函式,這個函式的名字叫做 push

2: 這個函式的引數,第乙個是乙個陣列,第二個以後是任意的資料

3: 呼叫這個函式,那麼會把第二個以後的所有引數,依次放到第乙個引數也就是那個陣列的最後乙個位置。

4: 這個函式返回值,是放入這些資料之後陣列的長度。

*/var arr = ['a','b','c'];

function push(arr)

push(arr,1,2,3)

console.log(arr); // (6) ["a", "b", "c", 1, 2, 3]

封裝 unshift(向第乙個新增)
/**

* 1 封裝乙個函式,這個函式的名字叫做 unshift

* 2 這個函式的引數,第乙個是乙個陣列,第二個以後是任意的資料 * 3 呼叫這個函式,那麼會把第二個以後的所有引數,依次放到第乙個引數也就是那個陣列的開頭的位置。

* 4 這個函式返回值,是放入這些資料之後陣列的長度。

*/ function unshift(arr)

arr[0] = arg[j];

}return arr.length;

}// -------------------------------

var arr = [1, 2, 3];

console.log(unshift(arr, 'a', 'b', 'c', 'd'));

console.log(arr);

// ===> [1, 1, 2, 3];

// for(var i=arr.length; i>0; i--)

// arr[3] = arr[2] ==> [1, 2, 3, 3];

// arr[2] = arr[1] ==> [1, 2, 2, 3];

// arr[1] = arr[0] ==> [1, 1, 2, 3];

// arr[0] = 4; // ===> [4, 1, 2, 3]

// // console.log(arr);

pop(刪除最後乙個)
1 封裝乙個函式,名字叫做pop

2pop函式的引數是唯一的陣列

3 呼叫pop函式,刪除陣列中最後乙個資料

4 如果這個陣列是空,那麼呼叫這個函式,返回值是 undefined

5 如果不是空陣列返回值為被刪除的資料

// var arr = [1, 2, 3];

function pop(arr)

// console.log(pop(arr)); //

3 // console.log(arr); // [1, 2]

shift (刪除第乙個)

1 封裝乙個函式,名字叫做 shift

2 shift函式的引數是唯一的陣列

3 呼叫shift函式,刪除陣列中第乙個資料

4 如果這個陣列是空,那麼呼叫這個函式,返回值是 undefined

5 如果不是空陣列返回值為被刪除的資料

···

function shift(arr)

arr.length--;

return first;

}var arr = ['a', 'b', 'c'];

console.log(shift(arr)); //

'a'console.log(arr); // ['b', 'c']

indexof

1 封裝乙個函式叫 indexof

2 indexof 函式的第乙個引數為要查詢的陣列,第二個引數為要查詢的資料

3 呼叫這個函式,如果要查詢的資料未找到,那麼函式的返回值為-1,如果找到那麼返回這個資料的位置

function

indexof

(arr, item)

} return -1;

}var arr = [1, 2, 'a', 4];

console.log(indexof(arr, 'a')); // 2

console.log(indexof(arr, 10)); // -1

spliceone

1 封裝乙個函式叫做 spliceone

2 該函式的第乙個引數是陣列,第二個引數是索引

3 呼叫這個函式,可以刪除這個索引對應的資料

4 如果是空陣列,那麼返回undefined,否則返回這個被刪除的資料

function

spliceone

(arr, index)

var arr = [1, 2, 3, 4];

console.log(spliceone(arr, 2)); // 3

console.log(arr); // [1, 2, 4];

join(將陣列轉換成字串)

1 封裝乙個函式叫做 join

2 join函式的第乙個引數是乙個陣列,第二個引數是分割符

3 呼叫join,那麼陣列中的每一項就會被指定的分割符鏈結起來,如果不指定分隔符,預設就是 『,』,如果分隔符傳入的不是乙個字串,那麼就返回false

4 返回值為字串,原陣列不變。

function join(arr, spliter)

if(typeof spliter !== 'string')

for(var i=0, str='', len = arr.length; i1 ? arr[i] + spliter : arr[i];

} return str;

}var arr = [1, 2, 3];

console.log(join(arr)); // '1,2,3'

console.log(join(arr, '')); // '123'

console.log(join(arr, '--')); //'1--2--3';

console.log(join(arr, 123)); // false

console.log(arr); // [1, 2, 3];

reverse(反轉)

1 封裝乙個函式叫做reverse

2 該函式的引數是乙個陣列

3 呼叫這個函式,那麼陣列將會反轉

4 返回反轉後的陣列

function reverse(arr)

}return arr;

}var arr = [1,2,3];

console.log(reverse(arr)); // [3, 2, 1]

console.log(arr); // [3, 2, 1]

filter

1 封裝乙個函式叫做filter

2 該函式的第乙個引數是要過濾的陣列,第二個引數是乙個函式成為過濾函式

3 呼叫這個方法,會對陣列進行遍歷

4 每次遍歷,都會把陣列的當前這項和索引值當作引數傳給過濾函式

5 這個過濾函式的規則一旦符合就返回這個值

6 filter函式最終返回所有符合條件的資料的集合,乙個新陣列。

function

push

(arr)

function

filter

(arr, cb)

}return result;

}var arr = [11, 4, 7, 12, 17, 9];

var result = filter(arr, function

(item, i));

console.log(result); // [11, 12, 17];

var normalattr = [

'width',

'height',

'left',

'top',

'bottom',

'right',

'marginleft',

'margintop',

'marginbottom',

'marginright'

];var box = document.queryselector('.box');

function

indexof

(arr, item)

} return -1;

}function

css(ele, attr, val)else

} function

setattr

(attr, val)else

} // 批量設定

if(typeof attr === 'object')

return;

} setattr(attr, val);

}css(box,'background','yellow');

陣列方法之forEach底層封裝

foreach方法是es5新增的陣列方法,用於陣列的迴圈遍歷,只有乙個引數,需要傳入乙個函式,很多人說是有三個引數,其實這種說話是錯誤的,是他的引數函式有三個形參,而不是foreach方法有三個引數。1 foreach方法接受乙個函式引數,該函式引數中有三個形參,當然有些形參用不到就可以不宣告。2 ...

JS中陣列方法的封裝之slice

slice方法的功能 1 陣列的擷取 2 slice m,n 從陣列索引m開始,擷取到索引n,但是不包含n 前包後不包 slice m 從索引m開始,擷取到末尾 slice 陣列的轉殖 slice 0 索引負數 讓當前length 負數 3 返回值是擷取的陣列 4 原有陣列不發生改變 首先 先分清楚...

JS中陣列方法的封裝之slice

slice方法的功能 1 陣列的擷取 2 slice m,n 從陣列索引m開始,擷取到索引n,但是不包含n 前包後不包 slice m 從索引m開始,擷取到末尾 slice 陣列的轉殖 slice 0 索引負數 讓當前length 負數 3 返回值是擷取的陣列 4 原有陣列不發生改變 首先 先分清楚...