JS中some()和every()和join()和concat()和pop(),push(),shift(),unshfit()和map()和filter()
一、Array
1、some()和every()
some()是對陣列中每一項執行指定函式,如果該函式對任一項返回true,則返回true。
every()是對陣列中的每一項執行給定函式,如果該函式對每一項返回true,則返回true。
var array = [1,3,5,7,9,11,13,15,17] undefined array.some(function(item,index){ return item>9 }) //true
返回true
var array = [1,3,5,7,9,11,13,15,17] undefined array.every(function(item,index){ return item>9 }) //false
返回 false
2、join()
join() 方法用於把陣列中的所有元素放入一個字串。
var arr =[4,5,34,3453,3453,33,"哈哈哈哈"]; var arr2 = arr.join(""); console.log(arr2); console.log(typeof(arr2)); //string console.log(typeof(arr)); //object //45343453345333哈哈哈哈 //string //object
輸出:
//45343453345333哈哈哈哈 //string //object
3、concat()
連線2個以及更多的陣列,返回一個新陣列。
var arr = new Array(3) arr[0] = "George" arr[1] = "John" arr[2] = "Thomas" var arr2 = new Array(3) arr2[0] = "James" arr2[1] = "Adrew" var array3 = arr.concat(arr2); console.log(array3); console.log(arr); console.log(arr2);
輸出:
(6)["George", "John", "Thomas", "James", "Adrew", empty]
(3)["James", "Adrew", empty]
4、pop()和push()和shift()和unshift()
會改變陣列的本身的長度及內容。
不同的是push()、pop()是從陣列的尾部進行增減,unshift()、shift()是從陣列的頭部進行增減。
(1)push()是對尾部新增若干元素,unshift()是對頭部新增若干元素,返回陣列新長度
var arr = [1, 2]; arr.push(3,4); console.log(arr); //[1,2,3,4] arr.unshift(0,0.5); console.log(arr); //[0,0.5,1,2,3,4]
(2)pop()從陣列的尾部刪除1個元素(刪且只刪除1個),並返回被刪除的元素;空陣列是繼續刪除,不報錯,但返回undefined;而shift()是對頭部刪除1個元素(只刪除1個)。。。
//接上面陣列arr arr.pop() //返回4 console.log(arr); //[0, 0.5, 1, 2, 3]
arr.shift() //返回0
console.log(arr) //[0.5,1,2,3]
5、map()
map
“對映”,也就是原陣列被“對映”成對應新陣列。
var data = [1, 2, 3, 4]; var array = data.map(function (item) { return item * item; });
console.log(array) //[1,4,9,16]
輸出:[1,4,9,16]
var users = [ {name: "張含韻", "email": "[email protected]","age":"18"}, {name: "江一燕", "email": "[email protected]","age":"34"}, {name: "李小璐", "email": "[email protected]","age":"28"} ]; var emailsAge = users.map(function (item) { return {email:item.email,age:item.age}});
輸出
[{email:"[email protected]",age:"18"},{email:"[email protected]",age:"34"},{email:"[email protected]",age:"28"}]
6、filter()
filter()方法用於把Array
的某些元素過濾掉,然後返回剩下的元素,並建立一個包含所有通過測試的元素的新陣列。
function isBigEnough(element) { return element >= 10; } var filtered = [12, 5, 8, 130, 44].filter(isBigEnough); console.log(filtered);//[ 12, 130, 44 ]
輸出:[12,130,44]
功能(1):一個Array
中,刪掉偶數,只保留奇數
var arr = [1, 2, 4, 5, 6, 9, 10, 15]; var num = arr.filter(function (x) { return x % 2 !== 0; });
console.log(num) //[1,5,9,15]
功能(2):把Array
中的空字串刪掉
var arr = ['A', '', 'B', null, undefined, 'C', ' ']; var string = arr.filter(function (s) { return s && s.trim(); // 注意:IE9以下的版本沒有trim()方法 }); console.log(string); // ['A', 'B', 'C']
功能(3):可以巧妙地去除Array
的重複元素,
注意:去除重複元素依靠的是indexOf
總是返回第一個元素的位置,後續的重複元素位置與indexOf
返回的位置不相等,因此被filter
濾掉了。
var r, arr = ['apple', 'strawberry', 'banana', 'pear', 'apple', 'orange', 'orange', 'strawberry']; r = arr.filter(function (element, index, self) { return self.indexOf(element) === index; }); console.log(r.toString()); //apple,strawberry,banana,pear,orange