探究类数组与json[原创]

类数组:

类似数组,但不是数组;这意味着功能更加强大,可以代替数组与对象;

在数组内添加几个属性;

var obj = { //对象
1: "a",
2: "b",
3: "c",
}
var analogyArr = { //类数组--》属性要为数字;最好加上push,但是一定要有length属性;
"0": "a",
"1": "b",
"2": "c",
"length":3,
"push":Array.prototype.push,//将一个或多个元素添加到数组的末尾,并返回数组的长度;
"splice":Array.prototype.splice//通过删除或替换现有元素
}
var arr = ["a","b","c"];//对象

 

上述代码在控制台可以访问到obj.length,也可以使用push与splice;在控制台打印后:

image.png

当然最关键的是有没有push的方法,要不然类数组也没什么用处;

image.png

在网上找到了一个有趣的类数组题,是16年阿里巴巴出的题目;

var setArr = {
    "2": "a",
    "3": "b",
    "length":2,
    "push" : Array.prototype.push,
}
setArr.push("c");
setArr.push("d");
//问最后这个数组长什么样子

 

在控制台打印的最终效果;

image.png

为什么会是这样,这就要探究到push的方法上去了

Array.prototype.push = function (target) { 
    this[this.length] = target;
    this.length ++;
}
// this.length = 2;
// this[2] = "c";
// this.length ++ = 3;

 

以上即是我对类数组的近期学习的总结;

json:

json是一种传输数据的格式;以对象为样板,本质上就是对象,但用途有区别,对象就是本地用的,但是json是用来传输的

JSON.parse()//将后台传值进行转化成 ==>对象

JSON.stringfiy(); //将前台传值-后台内容进行转化成 ==>“object{}”

使用方法:

var obj = {
    1: "a",
    2: "b",
    3: "b",
} 
var str= JSON.stringify(obj);//将内容进行转化成给后台传值。-->"object{}"
console.log(str) // 浏览器打印出 : "{"1":"a","2":"b","3":"b"}"

然后试下JSON.parse(str);将str转化成了 {1: "a",2: "b",3: "b",}

以上即是我对json格式近期学习的总结;

希望与大家共勉。

posted on 2019-05-29 10:02  兔1兔2  阅读(171)  评论(0编辑  收藏  举报

导航