八种数组去重方法
let arr = [1,23,54,35,66,33,83,54,99,44,22,23,898,35,'1']
const result = Array.from(new Set(arr));
const result1 = [...new Set(arr)];
function uniqueFun2(arr){
let len = arr.length;
for(let i=0; i < len; i++) {
for(let j = i+1;j < len; j++) {
if(arr[i] === arr[j]) {
arr.splice(j,1);
len--;
j++;
}
}
}
return arr;
}
function uniqueFun3(arr){
const newArr = [];
arr.forEach(item=>{
if(newArr.indexOf(item)===-1) {
newArr.push(item)
}
});
return newArr;
}
function uniqueFun4(arr){
const newArr = [];
arr.forEach(item=>{
if(newArr.includes(item)) {
newArr.push(item)
}
});
return newArr;
}
function uniqueFun5(arr){
return arr.filter((item,index)=>{
return arr.indexOf(item) === index;
})
}
function uniqueFun6(arr){
const map = new Map();
const newArr = [];
arr.forEach((item)=>{
if(!map.has(item)) {
map.set(item,true);
newArr.push(item);
}
});
return newArr;
}
function uniqueFun7(arr){
const newArr = [];
const obj = {};
arr.forEach((item)=>{
if(!obj(item)) {
newArr.push(item);
obj[item] = true;
}
});
return newArr;
}
function uniqueFun8(arr) {
return arr.reduce((prev,cur)=>(prev.includes(cur)?prev:[...prev,cur]),[])
}
四种将一个多维数组进行扁平化处理
var arr = [[11,20],30,[40,50,[60,70,[80,92,[110,91]]]]]
function flatFn1(arr) {
return arr.flat(Infinity);
}
function flatFn2(arr) {
arr=arr.toString().split(",");
let newArr = arr.map((item)=>{
item = +item;
return item;
})
return newArr;
}
function flatFn3(arr) {
let str = JSON.stringify(arr);
str = str.replace(/(\[|\])/g,"");
str = "["+str+"]";
return JSON.parse(str);
}
function flatFn4(arr) {
return arr.reduce((opt1,opt2)=>{
return opt1.concat(Array.isArray(opt2)?flatFn4(opt2):opt2);
},[]);
}
for(let i =0; i<3;i++) {
setTimeout(()=>{
console.log(i)
},1000*i)
}
let arr = [1,2,[3,4,[5,6],7,[8,9,[10]]]]
function flatten(arr) {
return arr.reduce((prev,curr)=>{
if(Array.isArray(curr)) {
return prev.concat(flatten(curr))
} else {
return prev.concat(curr)
}
},[])
}
console.log(flatten(arr))
setTimeout(
function() {
console.log(1)
},0);
new Promise((resolve, reject) => {
console.log(2)
resolve();
}).then(function(){
console.log(3)
}).then(function(){
console.log(4)
})
console.log(6)
JS本地创建并下载文件
function saveTextAsFile(textToWrite,fileNameToSaveAs){
const textFileAsBlob = new Blob([textToWrite]);
const link = document.createElement('a');
link.download = fileNameToSaveAs;
link.href = URL.createObjectURL(textFileAsBlob);
lick.click();
}
saveTextAsFile('hello world','hello.txt)