js遍历数组和对象的方法

js遍历数组和对象的方法

数组

1.for循环

var arr=[1,2,3,4,5,6]
	for(var i=0;i<arr.length;i++){        //arr.length是数组的长度
		console.log("arr="+arr[i]);
	}

2.forEach

  • forEach()方法需要一个函数作为参数
  • 该方法没有返回值
  • 浏览器会在回调函数中传递三个参数,他们的作用分别为:
    第一个参数:就是当前正在遍历的对象
    第二个参数:就是当前正在遍历的对象的索引
    第三个参数:就是当前正在遍历的数组
var arr=[1,2,3,4,5,6];
		arr.forEach(function (value,index,array){
			console.log("第一个参数="+value);
//			console.log("第二个参数="+index);
//			console.log("第三个参数="+array);
		})

3.map

  • map函数,遍历数组每个元素,并回调操作,需要返回值,返回值组成新的数组,原数组不变
var arr = ['a', 'b', 'c', 'd'];
arr.map(function(item, index, array) {
    console.log(item, index);
})

4.filter()函数

  • 返回一个新数组,数组的元素是原数组中通过测试的元素(就是回调函数返回 true 的话,对应的元素会进入新数组), 原数组不变。
var arr=[1,"男",true,66];
		var result=arr.filter(function (value){	
			return typeof value === 'number';   //我们判断数据类型是否为Number,是则将其值返回
		})
		console.log (arr,result);

5.some()函数

  • 遍历数组中是否有符合条件的元素,返回值为Boolean值
    这个它只要找到一个符合条件的,就返回 true。
var arr=[1,"男",true,66];
		var result=arr.some(function (value){	
			return typeof value === 'number';
		})
		console.log (arr);
		console.log (result);
		
		var arr2=[1,null,true,66];
		var result2=arr2.some(function (value){	
			return typeof value === 'String';
		})
		console.log (arr2);
		console.log (result2);

6.every()函数

  • 测试数组的各个元素是否通过了回调函数的测试
  • 若都通过,返回 true,否则返回 false
  • 简单的说就是如果回调函数每次返回的值都是 true 的话,则 every() 返回 true,否则为 false。
var arr=[1,2,8,66];
		var result=arr.every(function (value){
			return typeof value === 'number';
		})
		console.log (arr);
		console.log (result);
		
		var arr2=[1,"男",true,66];
		var result2=arr2.every(function (value){	
			return typeof value === 'number';
		})
		console.log (arr2);
		console.log (result2);

7.find()函数

  • 返回第一个通过测试的元素
  • 如果没有通过测试的元素,则会返回undefined。
var arr=[1,2,8,66,"女","男"];
		var result=arr.find(function (value){	
			return typeof value === 'string';
		})
		console.log (arr);
		console.log (result);
		
		var arr2=[1,"男",true,66,false];
		var result2=arr2.find(function (value){
			return typeof value === 'boolean';
		})
		console.log (arr2);
		console.log (result2);

8.findIndex()函数

  • 这个函数与上面的find()作用一样,就是它返回的值为该通过第一个元素的索引。
var arr=[1,2,8,66,"女","男"];
		var result=arr.findIndex(function (value){
			return typeof value === 'string';
		})
		console.log (arr);
		console.log (result);
		
		var arr2=[1,"男",true,66,false];
		var result2=arr2.findIndex(function (value){
			return typeof value === 'boolean';
		})
		console.log (arr2);
		console.log (result2);

对象

1.for…in

  • 会遍历出对象的下标(也就是key值)

for(let i in obj){
    console.log(i,obj[i]);
}

2.Object.keys(obj)

  • 遍历返回一个数组,包括对象自身的(不含继承的)所有可枚举属性(不含Symbol属性).

Object.keys(obj).forEach(function(key){
    console.log(key,obj[key]); 
})

3.Object.getOwnPropertyNames(obj)

  • 遍历返回一个数组,包含对象自身的所有属性(不含Symbol属性,但是包括不可枚举属性).
Object.getOwnPropertyNames(obj).forEach( key => {
    console.log(key,obj[key]);
})
在JavaScript中,遍历数组可以通过使用for循环来实现。可以使用以下代码来遍历数组并生成对象: ```javascript var arr = [1, 2, 3, 4, 5]; var obj = {}; for (var i = 0; i < arr.length; i++) { obj[arr[i]] = i; } console.log(obj); ``` 上述代码首先创建了一个空对象`obj`。然后,通过for循环遍历数组`arr`,将数组中的每个元素作为对象`obj`的键,对应的索引作为值。最后,打印输出对象`obj`。 这样,你就可以使用JavaScript遍历数组生成对象了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [JS遍历数组对象的区别及递归遍历对象数组、属性的方法详解](https://download.csdn.net/download/weixin_38746018/13004197)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [JavaScript遍历数组对象的元素简单操作示例](https://download.csdn.net/download/weixin_38576811/13209524)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [使用Python的Requests、Selenium和BeautifulSoup结合的爬虫示例代码,用于爬取带有分页的动态网页](https://download.csdn.net/download/weixin_44609920/88225628)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值