Created
January 19, 2019 09:09
-
-
Save ayuLiao/a6f22db46ebbf0929b5201b444c0e177 to your computer and use it in GitHub Desktop.
javascript对数据与字典的操作
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//操作字典 | |
var dic = new Array();//通过申明一个Array来做一个字典 | |
字典中项的遍历 | |
for (var key in dic) { | |
console.log(key + ":" + dic[key]); | |
} | |
//下面两种方式都可以进行删除 | |
delete dic["r"]; | |
delete dic.w; | |
//操作数组 | |
var arr = ['a','b','c','d'] | |
//添加 | |
arr.push('q') | |
//移除数组的第一个元素 | |
var arr = ['a','b','c','d'] | |
array2=arr.shift() // 'a' | |
console.log(arr) ['b','c','d'] | |
//删除数组中的某个元素 splice | |
let arr = ['a','b','c','d'] | |
arr.splice('b',1); //不对,不可以用内容来指定 | |
arr.splice(1,1); //这个输出的是["b"] | |
console.log(arr)//这个输出来是["a","c","d"] | |
arr.slice(1,3)//['b','c']slice是返回指定位置的元素,注意区分,这个不会改变原数组 | |
//数组遍历 | |
let arr = ['a','b','c','d'] | |
//$.each()遍历 | |
$.each(arr, function(key, value){ | |
console.log(key+'...'+value) | |
}) | |
//for遍历 | |
for(let i = 0; i < arr.length; i++){ | |
console.log(arr[i]) | |
} | |
//数组筛选,注意参数的数组和$.each()正好相反 | |
//找个简单的例子: | |
$.grep( [0,1,2], function(n,i){ | |
return n > 0; | |
});//返回的结果是[1,2] | |
接下来比较数组筛选的几种不同方法 | |
var nums = '1,2,3,4,5,jQuery,CSS,5'.split(','); | |
//$.grep() | |
nums = $.grep(nums, function (value, key) { | |
// value = 数组元素的当前值 | |
// key = 当前值的下标 | |
return isNaN(value); | |
}); | |
console.log(nums); //结果为: ["jQuery", "CSS"] | |
//$.map() | |
nums = $.map(nums, function (value, index) { | |
//和$.grep() 的区别 | |
//return isNaN,得到结果为:[true, true] | |
return isNaN(value) ? value : null; | |
}); | |
console.log(nums); // ["jQuery", "CSS"] | |
//数组合并 | |
var arr = ['a','b','c','d'] | |
var arr2 = ['d','e','f','g'] | |
let mergeArr = $.merge(arr,arr2 ) //['a','b','c','d','d','e','f','g'] | |
//连接 | |
var a=[1,2,3]; | |
var b=['a','b','c']; | |
var c=["x","y","z"]; | |
var js=a.concat(b,c); | |
console.log(js)//Array [ 1, 2, 3, "a", "b", "c", "x", "y", "z" ] | |
console.log(js.join("|"))// 1|2|3|a|b|c|x|y|z | |
//数组去重 | |
//直接对数组去重 | |
let yearArr = [2009,2009,2010,2010,2009,2010] | |
$.unique(yearArr) // [2009,2010,2009,1010] | |
//数组排序后去重 | |
let yearArr = [2009,2009,2010,2010,2009,2010] | |
yearArr.sort() | |
$.unique(yearArr) //[2009,2010] | |
let yearArr = [2009,2009,2010,2010,2009,2010]; | |
Array.from(new Set(yearArr)) //[2009,2010] | |
yearArr = [2009,2009,2010,2010,2009,2010]; | |
console.log(unique2(yearArr)) | |
function unique2(arr) { | |
var ret = []; | |
arr.forEach(function(item){ | |
if(!ret.includes(item)){ | |
ret.push(item); | |
} | |
}); | |
return ret; | |
} | |
//查找数组中元素的位置,从0开始 | |
var arr = [ 4, "Pete", 8, "John" ]; | |
$.inArray("John", arr); //3 | |
$.inArray(4, arr); //0 | |
$.inArray("David", arr); //-1 | |
//颠倒数组中的元素 | |
var a=["xhtml","css","javascript"]; | |
var b=a.reverse(); | |
console.log(a);//Array [ "javascript", "css", "xhtml" ] | |
console.log(b);//Array [ "javascript", "css", "xhtml" ] | |
//返回指定位置的数组 slice | |
let arr = ['a','b','c','d'] | |
let b = arr.slice(1,3) | |
console.log(arr)//Array [ "a" ,"b","c","d"] | |
console.log(b)//Array [ "b", "c" ]从下标为1开始,到3结束,不包括3的位置 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment