JavaScript对象和json以及简单的数组操作

本文深入探讨了JavaScript中对象和数组的基本概念与操作方法,包括对象的创建、属性的访问与修改、内置方法的使用等;同时介绍了数组的常用操作如增删查改及排序反转等,还讲解了JSON格式及其解析与字符串化的方法。

简单说,所谓对象,就是一种无序的数据集合,由若干个“键值对”(key-value)构成。

//举例子说明
var obj = {
  p: 'Hello World'
};
var o = {}//也可以生成一个对象
复制代码

基本的使用

var company = {
    name: 'liangsicheng',
    age: 22,
    sayHello: function(){
        console.log('hello world')
    }
}
console.log(company.name)
console.log(company['name'])
company.sayHello()

company.addr = '多伦多'
compay['business'] = '前端开发'

for(var key in company){
    console.log(key)
    console.log(company[key])
}
复制代码

关于key的name

对象的所有键名都是字符串,所以加不加引号都可以。上面的代码也可以写成下面这样。

如果键名是数值,会被自动转为字符串。

ar o ={
  1: 'a',
  3.2: 'b',
  1e2: true,
  1e-2: true,
  .234: true,
  0xFF: true
};

o
// Object {
//   1: "a",
//   3.2: "b",
//   100: true,
//   0.01: true,
//   0.234: true,
//   255: true
// }
复制代码

如果对象里有一个函数怎么调用?


var o = {
    p: function(x){
        return 2 * X;
    }
    
}
o.p(2)
复制代码

查看所有属性

var o = {
  key1: 1,
  key2: 2
};

Object.keys(o);
// ['key1', 'key2']
//也可以foreach来遍历
复制代码

JSON

JSON 格式(JavaScript Object Notation 的缩写)是一种用于数据交换的文本格式,2001年由 Douglas Crockford 提出,目的是取代繁琐笨重的 XML 格式。

这玩意是用来替代XML用的 XML基本就是SPRING框架配置用的

以下是合格的 JSON 值。

["one", "two", "three"]

{ "one": 1, "two": 2, "three": 3 }

{"names": ["张三", "李四"] }

[ { "name": "张三"}, {"name": "李四"} ]
//必须是双引号
复制代码

JSON.parse()

这个方法可以将一个合格的JSON字符串转换为一个JS对象

JSON.parse('{}') // {}
JSON.parse('true') // true
JSON.parse('"foo"') // "foo"
JSON.parse('[1, 5, "false"]') // [1, 5, "false"]
JSON.parse('null') // null

var o = JSON.parse('{"name": "张三"}');
o.name // 张三
复制代码

JSON.stringify()

JSON.stringify方法用于将一个值转为字符串。该字符串符合 JSON 格式,并且可以被JSON.parse方法还原。

SON.stringify('abc') // ""abc""
JSON.stringify(1) // "1"
JSON.stringify(false) // "false"
JSON.stringify([]) // "[]"
JSON.stringify({}) // "{}"

JSON.stringify([1, "false", false])
// '[1,"false",false]'

JSON.stringify({ name: "张三" })
// '{"name":"张三"}'
复制代码

数组

基本使用

var arr = [3, 4, 5, 6]
console.log(arr.length)  //4
console.log(arr[0])      //3
console.log(arr[3])      //6
console.log(arr[4])      //undefined
arr[4] = 'hello'
console.log(arr[4])      // 'hello'

arr.push('LSC')      //再数组最后添加一个元素
console.log(arr)         // [3, 4, 5, 6, 'hello', 'LSC']
var value = arr.pop()    //把数组最后一位弹出来,返回 
console.log(value)       //'LSC'
console.log(arr)         //[3, 4, 5, 6, 'hello']

arr.unshift('LSC')     //在数组第一位新增
console.log(arr)         //['LSC', 3, 4, 5, 6, 'hello']
var value2 = arr.shift() //把数组第一位拿出来返回,数组发生变化
console.log(value2)      // 'LSC'
console.log(arr)         //[3, 4, 5, 6, 'hello']

var arr2 = arr.splice(1, 2)         //从下标为1的元素开始,拿出来2个元素作为一个数组返回,原数组发生改变
console.log(arr)         // [3, 6, 'hello']
console.log(arr2)        //  [4, 5]

arr.splice(1, 0, 8,9)    //从下标为1的位置(元素6)开始,删除0个,新增两个元素(在6前面新增8,9)
console.log(arr)         //[3, 8, 9, 6, 'hello']

var arr3 = arr.slice(2,3)           //从 arr 下标为2开始,到下标为3结束(不包括3),做为新数组,原数组不变
console.log(arr3)       // [9]
console.log(arr)        //[3, 8, 9, 6, 'hello']

var str = arr.join('-')
console.log(str)        // "3-8-9-6-hello"

var arr4 = [3, 5, -1, 18, 9, 27]
arr4.reverse()          //倒序,本身发生变化
arr4.sort(function(v1, v2){   //排序,本身发生变化
    return v1-v2; //v2-v1
})
复制代码

可以通过设置数组的length来砍数组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值