JS 数据处理

-数组

数据不需要保持一致性,是object的类型,中间被省略的元素是object的类型的。

var arr = [9,8,7];
typeof arr;//object 类型
//调用构造函数
var arr = new Array(5);//数组的默认长度
var arr = new Array(3,4,'foo');//数组的元素,输出值为3,4,foo
var arr = new Array('5');//数组元素 输出值为5

数组可以访问超过数组的length。并且可以赋值超过长度的值。长度限制为2的32次方

var arr =[1,2,4]
arr[100] // 值为undefined

数组枚举
for in /for each in 可以枚举数据,但是无法保证枚举顺序。
arr.forEach(function(e){print(e)})

数组排序,通过unicode码进行排序

var arr =['one','two','three']
arr.sort();//值变成['one','three','two']

数组拼接和分割

arr.join()//括号向不填的话默认以,拼接
str.split(分割字符/正则表达式)

数组的复制
js的深复制:如果对象的属性还引用的其他对象,则对象也会别复制过来
js的浅复制:只复制属性值和元素
好像跟java有点不一样????

var arr =[3,4,5]
var arr2 = [].concat(arr);
arr2[0] =1//arr2 =[1,4,5] arr = [3,4,5]
var arr3 = arr.slice(0,arr.length)
arr3[0]=1//结果同arr2

var arr4 = [{X:1}]
var arr5 = [].concat(arr4)
arr5.X =3//arr4结果为[{X:3}],arr5的结果为[{X:3}]

数组删除

var arr = [1,2,3,4]
delete arr[2]//1,2,,3

arr.splice(2,1)//从下标为2的位置其删除一个元素 1,3,4

数组的筛选

arr.map(function(e){return e.length}).filter(function(e) {return e%2==0})

数组的内部实现
由于是对象,所以实现方式并不是一段连续的内存空间

数组风格的对象

var aarr = {0:'zero',1:'one',2:'two',length:3}
aarr.join(',')
//Uncaught TypeError: aarr.join is not a function
Array.join(',',aarr)
//VM984:1 Uncaught TypeError: Array.join is not a function
事实证明不行,等我以后来看看什么原因
Array.prototype.join.call(aarr,',')
//"zero,one,two"

迭代器和控制器,没看懂,页码为148左眼皮

数组对象的意义
{},[] 两者的区别:
[]的length 属性的enumerable 属性
[]这个length 属性会自动增加,既超过数组长度的下标进行赋值。
{}只能通过push方法获取unshift方法。

JSON
JSON 能通过4种基本类型和2种结构化数据
字符串,数值,布尔,null
对象,数组

var s ='{"X":1,"Y":2,"val":"foolBar"}'
var obj =JSON.parse(s)
//{X: 1, Y: 2, val: "foolBar"}

JSON.stringify(obj)
//"{"X":1,"Y":2,"val":"foolBar"}"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值