前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >JavaScript基础学习--14 json、数组

JavaScript基础学习--14 json、数组

作者头像
用户1148399
发布2018-01-09 15:29:40
发布2018-01-09 15:29:40
1.2K00
代码可运行
举报
文章被收录于专栏:web前端web前端
运行总次数:0
代码可运行

Demos:   https://github.com/jiangheyan/JavaScriptBase

一、json

     1、格式与取值:{key: value}

代码语言:javascript
代码运行次数:0
运行
复制
var json = {'name': 'jiang'}     //最好用字符串的形式保存key,否则安全性不高
console.log(json.name);     //jiang
console.log(json[name]);     //undefined
console.log(json['name']);     //jiang

     2、前后端常用格式:

代码语言:javascript
代码运行次数:0
运行
复制
var response = {
    result: [{
        'id': 1,
        'name': 'nihao'
 
    }, {
        'id': 1,
        'name': 'nihao'
    }],
    length: 2
};
 
======================================
var response = {
    result: [{...},{...}],
    length: 2
};

     3、for  in 遍历json

代码语言:javascript
代码运行次数:0
运行
复制
var json = {
    'name': 'nihao',
    'id': '1'
};
for (var key in json) {
    alert(key);
    alert(json[key]);     //因为key是变量,所以只能用[], 而不能用点方法
}

     4、for in 遍历对象

     5、关于for in 和for循环

          5.1     json和对象都没有length属性,所以遍历只能用for in 不能用for循环

          5.2     数组既可以用for in,还可以呀for循环---》for in 范围广

二、数组

1、定义

代码语言:javascript
代码运行次数:0
运行
复制
var arr = [1, 2, 3];          //方便推荐
var arr2 = new Array(1, 2 3);
//小细节: arr2 = new Array(4) 此时如果参数是数字类型,且只有一个,则定义的是length。此时length = 4
//小细节: arr2 = new Array('4') 此时如果参数是数字类型,且只有一个,则定义的是length。此时是字符串形式,所以length = 1,且值为'4'

2、length属性可读可写

代码语言:javascript
代码运行次数:0
运行
复制
//tips. 快速清空数组的方法:
arr.length = 0;
arr = [];  //当数组中有万以上数据时,效率更高的方法是给数组重新赋值为空[], 这种清空数组的方法效率高

注意:数组中的length属性可写,但是字符串中的length属性不可写,无效

3、数组方法(操作原数组)

     3.1     arr.push();     //往数组的最后一位添加,且返回一个数组长度值     alert(arr.push('abc'));     //返回数组长度

   3.2     arr.unshift();     //往数组的第一位添加值,返回数组长度,但是 IE6、7不支持unshift的返回值

     3.3     arr.pop();     //删除数组的最后一位,返回值是删除的数据

     3.4     arr.shift();     //删除数组的第一位,返回值是删除的数据

代码语言:javascript
代码运行次数:0
运行
复制
//tips 
arr = ['12', '34', '56'];
arr.unshift(arr.pop()); // '56', '12', '34'
arr.push(arr.shift());     //'34', '56', '12'

     3.5     arr.splice(ind, length, val2)     //从第ind位置开始删除,一共删除length项,用val2替换

          注意:返回值只返回删除的数据,如果没有删除,则返回空

4、数组去重

代码语言:javascript
代码运行次数:0
运行
复制
//方法一
function deRepeat(arr) {
    var newArr = [];
    for (var i = 0; i < arr.length; i++) {
        if (newArr.indexOf(arr[i]) === -1) {
            newArr.push(arr[i]);
        }
    }
    return newArr;
}
 
var a = [1, 1, 2, 3];
alert(deRepeat(a));
 
================================================
//方法二
function deRepeat2(arr) {
    for (var i = 0; i < arr.length; i++) {
        for (var j = i + 1; j < arr.length; j++) {
            if (arr[i] === arr[j]) {
                arr.splice(j, 1);
                j--;
            }
        }
    }
    return arr;
}
var a = [1, 1, 2, 3];
alert(deRepeat2(a));

5、sort排序     arr.sort();

     注意:排序是按照字符串的ascll码排序的

代码语言:javascript
代码运行次数:0
运行
复制
//js原生排序的方法,sort里面的函数,如果是a - b > 0; 则交换a b 位置......
arr.sort(function(a, b){
     return a-b;
     //return parseInt(a) - parseInt(b);     只会交换位置,不会改变数据格式,所以此时如果数据是 '123px' ,则用parseInt方法转换之后计算,最后输出仍然是 '123px'
});
 
//其他排序:快速、希尔、冒泡、归并、选择、插入

6、随机排序

代码语言:javascript
代码运行次数:0
运行
复制
arr.sort(function(a, b){
     return Math.random() - 0.5;     //Math.random() 返回0-1之间的随机数
});

7、Math.random()     0 ~ 1 随机数

     7.1     0 || 1     Math.round(Math.random());   

代码语言:javascript
代码运行次数:0
运行
复制
//2 ~ 6
Math.round(Math.random() * 4 + 2);
 
//0 ~ 10
Math.round(Math.random() * 10);
 
//12 ~ 99
Math.round(Math.random() * (99 - 12) + 12);     //12 ~ 99 ,最小数是12,然后加上0 ~ (99-12)之间的数,结果就是12 ~ 99
 
//x ~ y
Math.round(Math.random() * (y - x) + x);
 
//0 ~ y
Math.round(Math.random() * y);
 
//1 ~ y
Math.ceil(Math.random() * y);

8、arr1.concat(arr2, arr3);     //连接几个数组

9、arr.reverse();     //倒序

代码语言:javascript
代码运行次数:0
运行
复制
//tips.     将字符串倒序
arr.split('').reverse().join('');
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-08-21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档