找出数组中字符长度最长的字符
var stringArr = ['hi', 'i', 'am', 'hahaha', 'hehe']
法一:遍历数组
var longest = {
len: 0,
in: 0
};
stringArr.forEach((item, index) => {
if (item.length > longest.len) {
longest.len = item.length
longest.in = index
}
})
console.log('len:', longest.len)
console.log('str:', stringArr[longest.in])
法二:数组的sort()方法
stringArr.sort((s1, s2) => {
return s1.length - s2.length;
})
let longeststr = stringArr.pop();
console.log('str:', longeststr)
法三:数组的reduce()方法
var strr = stringArr.reduce((pre, cur) => {
return cur.length > pre.length ? cur : pre
})
console.log(strr, strr.length)
数组去重
法一: 循环遍历
const unique = []
function uniqueFunc(arr) {
for (const i = 0;i<arr.length;i++) {
if(unique.indexOf(arr[i] === -1) {
unique.push(arr[i])
}
}
}
法二:数组下标判断
function uniqueFunc(arr) {
const unq = []
for(const i=0;i<arr.length;i++) {
if(arr[i].indexOf(arr[i] === i)) {
unq.push(arr[i])
}
}
}
法三: 排序相邻去除
function uniqueFunc(arr) {
arr.sort((a,b) => (a - b))先将数组进行排序
const unique = [arr[0]]
for(const i=0=1;i<arr.length;i++){
if(arr[i] !== arr[i - 1]) {
unique.push(arr[i])
}
}
return unique
}
法四:es6 set()
set() 是es6新增加的一种叫做集合的数据结构,类似于数组,成员是唯一的
const unique = new Set(arr)
const res = [...unique]