js数组和变量的遍历
在日常工作过程中,我们对于javaScript遍历对象、数组的操作是十分的频繁的,今天抽空把经常用到的方法小结一下,方便今后参考使用!
javaScript遍历对象总结
1、使用Object.keys()遍历
返回一个数组,包括对象自身的(不含继承的)所有可枚举属性(不含Symbol属性).
//创建对象
var obj = {'0':'a','1':'b','2':'c'}; Object.keys(obj).forEach(function(key){ console.log(key,obj[key]); });
2、使用for..in..遍历
循环遍历对象自身的和继承的可枚举属性(不含Symbol属性).
var obj = {'0':'a','1':'b','2':'c'}; for(var i in obj) { console.log(i,":",obj[i]); }
3、使用Object.getOwnPropertyNames(obj)遍历
返回一个数组,包含对象自身的所有属性(不含Symbol属性,但是包括不可枚举属性).
var obj = {'0':'a','1':'b','2':'c'}; Object.getOwnPropertyNames(obj).forEach(function(key){ console.log(key,obj[key]); });
4、使用Reflect.ownKeys(obj)遍历 返回一个数组,包含对象自身的所有属性,不管属性名是Symbol或字符串,也不管是否可枚举.
var obj = {'0':'a','1':'b','2':'c'}; Reflect.ownKeys(obj).forEach(function(key){ console.log(key,obj[key]); });
var njson = {"aa":"11","bb":"22"}
njson["cc"] ="33"; //向json对象中添加新的元素
//向json对象中一次添加多个元素,创建新对象包含要添加的内容,遍历新创建的对象,依次添加到原json中
let njson1 = {"zz":"99","yy":"88"}
Object.keys(njson1).forEach(function(key){
njson[key] =njson1[key];
//console.log(key,njson1[key])
})
// console.log(njson)
delete njson["99"]//从json中删除键delete njson[key]
delete njson.aa//这也是按照键删除
// 删除多个指定内容,也可以修改添加
let index55 = ['99','33']//设定一个要删除的内容,可以是值也可以是键
for(var i=0;i<index55.length;i++){//循环这个数组,
Object.keys(njson).forEach(function(key){//遍历对象,进行对比,如果相同就删除
//console.log(key,njson[key])//key是键,njson[key]是值,根据自己需求决定要怎么删除
if(index55[i] == njson[key] ){//这里是对比的是值,既值相同就删除
delete njson[key]
}
})
}
console.log(njson)
javaScript遍历数组总结
var arr=[1,2,3,4]; arr.forEach(function(val, index) { console.log(val, index); });
2、使用for..in..遍历
var arr=["张三","李四","王五","赵六"]; for (var i in arr){ console.log(i,":",arr[i]); }
var arr=["aa","bb","cc","dd"]; //创建数组
arr.unshift("unsh","ift");//向数组中添加数据,添加的数据会在数组的开头
arr.push("pu","sh");// 向数组中添加数据,数据会在数组的结尾
let arr1 = arr.concat("con","cat")// 向数组中添加数据,数据会在数组的结尾,concat()会生成新的数组,需要用一个变量接收
//array.splice(index,howmany,item1,.....,itemX)
的第1个参数index
为指定起始下标位置;第2个参数howmany
指定应该删除的元素数目,当值设置为0时,就会不执行删除操作;这样就可以通过第3个及后面参数item1,.....,itemX
来插入一个或多个元素。arr.splice(1,0,"spl","ice")//第二个参数设置为了0 所以会向数组添加后面的数据
//删除指定数组元素,使用splice 方法制作一个方法,传入数组和要删除的内容。
function removeByValue(arr, val) {//这个方法会从传来的数组中删除传来的指定内容
for(var i = 0; i < arr.length; i++) {
if(arr[i] == val) {
arr.splice(i, 1);
break;
}
}
}
removeByValue(arr, "spl");
console.log(arr)
console.log(arr1)
console.log(arr)
//使用for...in遍历数组
for(var i in arr){
console.log(i,":",arr[i])
}
njson["cc"] ="33"
3、使用for-of遍历 不仅支持数组,还支持大多数类数组对象,例如DOM NodeList对象. 也支持字符串遍历,它将字符串视为一系列的Unicode字符来进行遍历.
var arr=["张三","李四","王五","赵六"]; for (var value of arr){ console.log(value); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!