接之前的字符串常用方法封装,这里是数组类型。
在此之前你还需要掌握一些JS原生的字符串API。
length
设置或返回数组中元素的数目
concat()
连接两个或更多的数组,并返回结果。
join()
把数组的所有元素放入一个字符串,元素通过指定的分隔符进行分隔。 **注释:**默认使用逗号作为分隔符
push()
向数组的末尾添加一个或更多元素,并返回新的长度。
pop()
删除并返回数组的最后一个元素。
shift()
删除并返回数组的第一个元素。
unshift()
向数组的开头添加一个或更多元素,并返回新的长度。
reverse()
颠倒数组中元素的顺序。
sort()
按规定对数组的元素进行排序。**注释:**参数必需是函数
slice()
返回一个从start开始(含)到end结束的数组。
splice()
从数组中添加/删除项目,然后返回被删除的项目。
Array.splice(index,howmany,item1,.....,itemX)
-----------------------------------------------
index 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
howmany 必需。要删除的项目数量。如果设置为 0,则不会删除项目。
item1, ..., itemX 可选。向数组添加的新项目。
// 去重一
function depuli(arr) {
var newArr = []
for(let i in arr) {
if (newArr.indexOf(arr[i]) === -1) {
newArr.push(arr[i])
}
}
return newArr
}
// 去重二
arr => [...new Set(arr)]
// 数组乱序
function de(arr) {
var len = arr.length
for(let i in arr) {
var rand = parseInt(Math.random()*len)
var temp = arr[rand]
arr[rand] = arr[i]
arr[i] = temp
}
}
/** 洗牌算法
倒序循环这个数组
取 范围从 1到n 的随机数 k
k 与 n 做交换
直到循环到数组的首个元素
*/
[1,2,2,2,3,3,4,4,4,4,5] => [1, 2, 2, 3, 3, 4, 4, 5]
function arrCheck(arr) {
var newArr = []
for(let i in arr) {
let temp = arr[i]
let count = 0
for(let j in arr) {
if(arr[j] === temp) {
count++
arr[j] = -1
}
}
if(temp != -1) {
if (count > 2) {
count = 2
}
for(let k = 0; k < count; k++) {
newArr.push(temp)
}
}
}
return newArr
}
console.log(arrCheck([1,2,2,2,3,3,4,4,4,4,5]))
[1,2,2,2,3,3,4,4,4,4,5] => [1, 3, 3, 5]
function arrCheck(arr) {
var newArr = []
for(let i in arr) {
let temp = arr[i]
let count = 0
for(let j in arr) {
if(arr[j] === temp) {
count++
arr[j] = -1
}
}
if(temp != -1 && count <= 2) {
for(let k = 0; k < count; k++) {
newArr.push(temp)
}
}
}
return newArr
}
console.log(arrCheck([1,2,2,2,3,3,4,4,4,4,5]))
function getEleCount (obj, ele) {
var num = 0;
for (var i = 0, len = obj.length; i < len; i++) {
if (ele == obj[i]) {
num++;
}
}
return num;
}
getEleCount('asd56+asdasdwqe','a') // 3
getEleCount([1,2,3,4,5,66,77,22,55,22],22) // 2