javascript JavaScript的对数据与字典的操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript JavaScript的对数据与字典的操作相关的知识,希望对你有一定的参考价值。

 //操作字典
 
 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的位置 

以上是关于javascript JavaScript的对数据与字典的操作的主要内容,如果未能解决你的问题,请参考以下文章

一道面试题引发的对javascript类型转换的思考

JavaScript数组

javascript中15种原生对象类型系统综述

ProtoBuf.js – Protocol Buffers的Javascript实现(转)

javascript中的字典

Javascript类型转换的规则实例解析