如何判斷一個對象是不是數(shù)組妈倔?
var arr = [1,2]
//es6多糠,注意兼容問題
Array.isArray(arr) //返回一個布爾值
//兼容寫法
var arr = [1,2]
arr instanceof Array //返回一個布爾值
數(shù)組去重
//es6寫法
function unique(arr) {
return Array.from(new Set(arr))
}
<!--
兼容寫法,
思路: indexOf用于返回數(shù)組中當(dāng)前元素的下標(biāo)厉碟,如果該數(shù)不存在的話 則返回-1匪凡;
建一個新數(shù)組严衬,循環(huán)數(shù)組的每一個值巡李,如果新數(shù)組中沒有該值抚笔,
則把該值push進(jìn)去
返回新數(shù)組
-->
function unique(arr) {
var ret = []
for (var i = 0; i < arr.length; i++) {
var item = arr[i]
if (ret.indexOf(item) === -1) {
ret.push(item)
}
}
return ret
}
找出數(shù)組中出現(xiàn)最多的元素,以及出現(xiàn)的次數(shù)
該方法同樣可以用于字符串的查找
/*
1. 創(chuàng)建一個對象obj击儡;
2. 循環(huán)字符串塔沃;
3. 判斷obj[str[i]]是否存在, 如果對象不存在這個key,則賦予這個key并使其value為1蛀柴;
3. 如果存在螃概,使其value++;
5. 用變量name存儲出現(xiàn)最多次數(shù)的字符串
6. 用一個v變量num存儲出現(xiàn)最多次數(shù)字符串出現(xiàn)的次數(shù)
7. for in 循環(huán)鸽疾,拿到obj的key以及value吊洼;
8. 使變量num等于出現(xiàn)最多次數(shù)字符串出現(xiàn)的次數(shù),變量name等于最多次數(shù)的字符串
*/
var str = ['a', 'a', 'b', 'c'];
var obj = {};
for (var i = 0; i < str.length; i++) {
if (!obj[str[i]]) {
obj[str[i]] = 1;
} else {
obj[str[i]]++;
}
};
var num = 0;
var name = '';
for (var i in obj) {
if (obj[i] > num) {
num = obj[i];
name = i;
}
}
console.log('出現(xiàn)最多的是' + name + ',一共出現(xiàn)了' + num + '次');
返回一個數(shù)組的平方
//map是es6的語法制肮,會返回一個新數(shù)組冒窍,接受一個回調(diào)函數(shù)
function fn(arr){
arr.map(function (value){
return value * value
})
}