去重
function unique ( arr) {
let unique = { } ;
arr. forEach ( function ( item) {
var newData = { } ;
Object. keys ( item) . sort ( ) . map ( key = > {
newData[ key] = item[ key]
} )
unique[ JSON . stringify ( newData) ] = item;
} )
arr = Object. keys ( unique) . map ( function ( u) {
return JSON . parse ( u) ;
} )
return arr;
}
判断数组是否包含某对象,或者判断对象是否相等
let data = [ {
name: 'echo'
} ,
{
name: '前端开发博客'
} ,
{
name: '蔡生'
} ,
] ,
val = {
name: '蔡生'
} ;
JSON . stringify ( data) . indexOf ( JSON . stringify ( val) ) !== - 1 ;
let a = [ 1 , 2 , 3 ] ,
b = [ 1 , 2 , 3 ] ;
JSON . stringify ( a) === JSON . stringify ( b) ;
实现深拷贝
function deepClone ( data) {
let _data = JSON . stringify ( data) ,
dataClone = JSON . parse ( _data) ;
return dataClone;
} ;
let arr = [ 1 , 2 , 3 ] ,
_arr = deepClone ( arr) ;
arr[ 0 ] = 2 ;
console. log ( arr, _arr)
存储 localStorage 对象
var session = {
'screens' : [ ] ,
'state' : true
} ;
session. screens. push ( {
"name" : "screenA" ,
"width" : 450 ,
"height" : 250
} ) ;
session. screens. push ( {
"name" : "screenB" ,
"width" : 650 ,
"height" : 350
} ) ;
session. screens. push ( {
"name" : "screenC" ,
"width" : 750 ,
"height" : 120
} ) ;
session. screens. push ( {
"name" : "screenD" ,
"width" : 250 ,
"height" : 60
} ) ;
session. screens. push ( {
"name" : "screenE" ,
"width" : 390 ,
"height" : 120
} ) ;
session. screens. push ( {
"name" : "screenF" ,
"width" : 1240 ,
"height" : 650
} ) ;
localStorage. setItem ( 'session' , JSON . stringify ( session) ) ;
var restoredSession = JSON . parse ( localStorage. getItem ( 'session' ) ) ;
console. log ( restoredSession) ;