1、concat
2、indexOf:
搜索數組中的元素,並返回它所在的位置。(可用作統計)
統計數組 arr 中值等於 item 的元素出現的次數:
function count(arr, item) {
var count = 0;
arr.forEach(function(e){
//e爲arr中的每一個元素,與item相等則count+1
e == item ? count++ : 0;
});
return count;
}
indexOf()只會返回找到的第一個元素索引。
3、增刪方法
pop:刪除數組的最後一個元素並返回刪除的元素。
push:向數組的末尾添加一個或更多元素,並返回新的長度。
shift:刪除並返回數組的第一個元素。
unshift:向數組的開頭添加一個或更多元素,並返回新的長度。
4、reverse
5、slice:
選取數組的的一部分,並返回一個新數組。
語法
array.slice(start, end)
參數 | 描述 |
---|---|
start | 必需。規定從何處開始選取。如是負數,它規定從數組尾部開始算起的位置.即-1 指最後一個元素,-2 指倒數第二個元素,以此類推。 |
end | 可選。規定從何處結束選取。該參數是數組片斷結束處的數組下標。如果沒有指定該參數,那麼切分的數組包含從 start 到數組結束的所有元素。如果這個參數是負數,那麼它規定的是從數組尾部開始算起的元素。 |
slice()可以從已有的數組中返回選定的元素,arr.slice(0)表示從第0個參數取到最後一個元素,是Javascript中複製數組的一種方式。
6、splice:
從數組中添加或刪除元素。注意:這種方法會改變原始數組。
語法
array.splice(index, howmany[,item1,.....,itemX])
參數 | 描述 |
---|---|
index | 必需。整數,規定添加/刪除項目的位置,使用負數可從數組結尾處規定位置。 |
howmany | 必需。要刪除的項目數量。如果設置爲 0,則不會刪除項目。 |
item1, ..., itemX | 可選。向數組添加的新項目。 |
返回值
如果僅刪除一個元素,則返回一個元素的數組。 如果未刪除任何元素,則返回空數組。
常見錯誤:這樣爲什麼會輸出空數組?
function insert(arr,item,index){
return arr.slice(0).splice(index,0,item);
}
//這樣爲什麼會輸出空數組?
原因:注意splice()的返回值。splice() 方法從數組中添加/刪除項目,然後返回被刪除的項目。上面返回的是splice方法返回的對象,不是處理後的數組。
7、toString
8、sort:
9、map:
map() 方法返回一個新數組,數組中的元素爲原始數組元素調用函數處理後的值。
注意:map() 方法按照原始數組元素順序依次處理元素。 map() 不會對空數組進行檢測。map() 不會改變原始數組。
語法
array.map(function(currentValue,index,arr), thisValue)
currentValue爲必填項。
js中map()和 foreach()的區別
forEach()方法不會返回執行結果,而是undefined。也就是說,forEach()會修改原來的數組。而map()方法會得到一個新的數組並返回。
例:找出數組 arr 中重複出現過的元素
function duplicates(arr) {
//聲明兩個數組,a數組用來存放結果,b數組用來存放arr中每個元素的個數
var a = [],b = [];
//遍歷arr,如果以arr中元素爲下標的的b元素已存在,則該b元素加1,否則設置爲1
for(var i = 0; i < arr.length; i++){
if(!b[arr[i]]){
b[arr[i]] = 1;
continue;
}
b[arr[i]]++;
}
//遍歷b數組,將其中元素值大於1的元素下標存入a數組中
for(var i = 0; i < b.length; i++){
if(b[i] > 1){
a.push(i);
}
}
return a;
}
例:在數組 arr 中,查找值與 item 相等的元素出現的所有位置
||--短路用法 或者
val == target && temp.push(index);中的&&用法。
function findAllOccurrences(arr, target) {
var temp = [];
arr.forEach(function(val,index){
val !== target || temp.push(index);
});
return temp;
}
當時我用了indexOf(),它只會返回找到的第一個元素索引。
例:給定的 js 代碼中存在全局變量,請修復
function globals() {
//只需要在聲明myObject時加上var就行了
var myObject = {
name : 'Jory'
};
return myObject;
}
疑問:Javascript全局變量var與不var的區別?
在全局作用域裏,用下面3種形式都可以創建對全局可見的命名:
<script>
var a = 1;
b = 2;
window.c = 3;
</script>
對於b=2這種方式, 它其實和c是一樣的,在執行這個賦值語句的時候,會沿着作用域鏈尋找名字叫做b的變量,一直找到作用域鏈的頂端還沒有找到,於是給window添加一個屬性b然後賦值。
var與不var區別:
1 、使用var聲明變量,在方法內部是局部變量,在方法外部是全局變量
2、沒有使用var聲明的變量,在方法內部或外部都是全局變量,但如果是在方法內部聲明,在方法外部使用之前需要先調用方法,告知系統聲明瞭全局變量後方可在方法外部使用。
例:parse2Int的用法
parseInt(string, radix)
當參數 radix 的值爲 0,或沒有設置該參數時,parseInt() 會根據 string 來判斷數字的基數。
如果 string 以 "0x" 開頭,parseInt() 會把 string 的其餘部分解析爲十六進制的整數。如果 string 以 0 開頭,那麼 ECMAScript v3 允許 parseInt() 的一個實現把其後的字符解析爲八進制或十六進制的數字。如果 string 以 1 ~ 9 的數字開頭,parseInt() 將把它解析爲十進制的整數。