JavaScript学习5——二维数组、键、对象

JavaScript基础——5

1、二维数组(可理解为矩阵):

[1,2,3,4,5,6]
[7,8,9,2,3,4]
[2,4,5,6,7,8]

创建方法:

//第一种方法
let arr = [6];
for(let i = 0; i < arr.length; i++){   //arr.length为列数  这表示6列  因此矩阵为6x6的
	arr[i] = [];
}

//第二种方法
let arr = new Array(6);
for(let i = 0; i < arr.length; i++){   //arr.length为列数  这表示6列  因此矩阵为6x6的
	arr[i] = new Array(arr.length);
}
二、键值对 :狭义的对象
x:100 其中 x 叫做键名 100 为值
它的类型是object(对象):引用数据类型
let obj = {
	x:100,
	y:200
}

概念:成对的属性名与属性值得集合(x对应100 ; y对应200)

let obj = {
	x:100,
	y:200
}

let a = obj;
a.x = 200;

上面代码中虽然只改了a中的x ,但obj中的x也会变成200;
因为基本数据类型是:传值,而引用数据类型是:传址;
可理解成 a 仅仅是一个指向obj的地址,因此当更改a的健值时更改的是obj的健值。

命名规则:1、键名都会被默认为字符串(x 其实 是“x”);
2、符合变量名命名规则的不需要加 “”,反之需要加;
3、纯数字可以做键值对的名字;

访问属性:1、对象名.属性名访问形式无法访问数字命名的键;
2、对象名[属性名]的形式只能访问数字命名的键;
3、对象名[“属性名”]一定可以成功;
动态添加属性:1、对象名.属性名 = 数据;(若对象中不存在该属性,则增加一个该
属性,否则会更改该属性);
2、后绑定:js允许先创建一个空对象;
删除:delete obj.x; 若删除成功会返回一个true;

附加:with :批量修改(不建议使用),with若修改到不存在的属性会创建出一个全
局的变量,造成变量污染;

三、hasOwnProperty:优点:运行速度快; 缺点:消耗内存非常大(判断是否有属性还可以用:in )

当判断到对象中有的属性时返回一
个true,没有则为false;

附加:使用该方法去重

let arr = [1,2,35,5,165,2,65,2,165,1];
		let obj = {};
		
		//原理 先遍历数组,每遍历一个就将其存入对象obj中,然后往后遍历时判断对象中是否有该键名
		//(使用了对象没有属性名时会创建一个的性质)
		
		for(let i = 0; i < arr.length; i++){
			if(obj.hasOwnProperty(arr[i] + "")){
					arr.splice(i,1);   //如果obj中存在数组i下标的值命名的属性时删除该下标对应得值
					i--;
			}
			else{   //否则继续创建属性
				obj[arr[i] + ""] = 0;	//键值可以随便给
			}
		}
		
		console.log(arr);
四、遍历对象
1、for in :
let obj = {
	a:100,
	b:200,
	c:300,
	d:400
}

obj.e = 500;   //当增加属性时  依旧可以遍历出来

for(let key in obj){   //使用 in 关键字
	console.log(obj[key]);  //打印出所有对象属性名
}

//Object.Key()方法
console.log(Object.key(obj));  //打印出:"a","b","c","d"

//Object.getOwnProperty()方法
console.log(Object.getOwnProperty(obj));  //["a","b","c","d"]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值