js遍历对象

JSON遍历方法

天大地大妈咪最大 提交于 2020-02-26 01:21:42
json 数组有长度json.abc.length,如果单纯是json格式,那么不能直接使用json.length方式获取长度,而应该使用其他方法。 最近在修改一个 html 页面的 JS 的时候遍历JSON对象,却怎么也调试不通过。怪这个HTML网页不知道用了什么方法禁止了 js 错误提示,刚开始的时候不知道有这个问题,用chrome的开发人员工具都没发现错误,就是在获取 json.length的时候总是undefined,所以就以为自己定义的json方法不对。折腾了一个晚上一点进展都没有,头都整晕了,太晚,最后失望地洗洗睡了。 第二天晚上就是不甘心这个小问题能难倒我,于是静下心来仔细查原因。自己新建一个空的HTML文件在其中测试,发现JSON对象根本没有length属性,在搜索引擎查找也没有比较权威的参考文档提到json有这个属性。博客也很少有提到 json.length 的。但是奇怪的是我明明记得json有length,我还用过,程序没错,正确运行。 那是怎么回事呢?最后看某博客一篇文章的时候回想起以前编程的细节,记得以前的json的子对象是个数组而这次的不是,这下终于恍然大悟了。 以前我使用json的这样的结构: var json1={"abc":[{"name":"txt1"},{"name","txt2"}]}; 遍历的方法是: for(var i=0;i<json1

JS迭代

浪尽此生 提交于 2020-02-10 07:14:19
for each...in 使用一个变量迭代一个对象的所有属性值。对于每一个属性值,有一个指定的语句块被执行。 作为ECMA-357(E4X)标准的一部分,for each...in语句已被废弃,E4X中的大部分特性已被删除,但考虑到向后兼容,for each...in只会被禁用而不会被删除,可以使用ES6中新的for...of语句来代替。 大部分非Mozilla浏览器都没有实现该标准,E4X并不是 ECMAScript 标准的一部分。 语法 for each (variable in object) { statement } 参数 variable 用来遍历属性值的变量,前面的var关键字是可选的。该变量是函数的局部变量而不是语句块的局部变量。 object 该对象的属性值会被遍历。 statement 遍历属性值时执行的语句。 如果想要执行多条语句,请用({ ... }) 将多条语句括住。 警告 永远不要使用for each...in语句遍历数组,仅用来遍历常规对象。 一些对象的内置属性是无法被遍历到的,包括所有的内置方法,例如String对象的indexOf方法。不过,大部分的用户自定义属性都是可遍历的。 for...in for...in语句以任意顺序遍历一个对象的可枚举属性。对于每个不同的属性,语句都会被执行。 语法 for (variable in object) {

第四章 JavaScript 数组挖掘

守給你的承諾、 提交于 2020-02-08 22:17:32
1.值类型与引用类型 值类型会指向同一个内存地址,而引用类型不会。 let array = [1,2,3,4] let msg = array msg[1] = "weizhuren" console.log(msg)//[1, "weizhuren", 3, 4] console.log(array)//[1, "weizhuren", 3, 4] console.table(array)//以表格形式打印 let a = 99 let b = a b++ console.log(a,b)//99 100 2.多维数组操作 多为数组可以使用以下方式定义,但是在开发过程中我们通常使用数组内定义对象的方式。 let array = ["wei",["zhu","ren"]] console.log(array[1][1]) let msg = [{name:"weizhuren",department:"erbihou"}] console.log(msg[0].name) 3.Array.of与数组创建细节 如果在一个长度为n的数组中新增加一个n+m(m>1)的元素,那么中间没有定义的元素会全部定义为undefined。 let array = ["weizhuren"] array[2] = "erbihou" console.log(array)//["weizhuren",

js中的几种遍历方式

此生再无相见时 提交于 2020-02-07 11:20:41
1.for循环 最常用的一种循环,常用于普通数组的遍历 场景1:普通数组 var arr = [ "苹果" , "香蕉" , "雪梨" ] ; for ( var i = 0 ; i < arr . length ; i ++ ) { console . log ( arr [ i ] ) ; //打印 苹果 香蕉 雪梨 } 场景2:数组里面装对象 var arr = [ { name : "hu" , age : 11 } , { name : "huww" , age : 20 } ] ; for ( var i = 0 ; i < arr . length ; i ++ ) { console . log ( arr [ i ] ) ; console . log ( arr [ i ] . name ) ; console . log ( arr [ i ] . age ) ; } 2.forEach循环 常用于遍历对象,也就是for循环中的场景2 myArray.forEach(function (value) { console.log(value); }); 实际上forEach有三个参数 分别为 值 下标 数组本身 于是我们有 [].forEach(function(value, index, array) { // … }); 对比jQuery中的$.each方法

js 数组、对象常见的遍历用法大全

♀尐吖头ヾ 提交于 2020-01-24 08:44:03
前言 对于前端js使用中,遍历函数是经常用到的,下面就列举一下前端的常见遍历方法 一、没有返回值的方法 for for 遍历应该是最普通也是最常见的遍历,如下: for ( let i = 0 ; i < 5 ; i ++ ) { console . log ( i ) ; //0 1 2 3 4 5,i为遍历次数 } for…in for…in 语句用于遍历数组或者对象的属性 const person = { id : '1' , name : '李子' } ; for ( let x in person ) { console . log ( x , person [ x ] ) ; } //id 1 //name 李子 //x 为对象的属性名:id、name;persion[x]即为对应的属性值了 注意: 1、该用法用于数组遍历时, x 则是数组的下标 2、一般用于对象属性遍历居多, 不建议对数组使用 ,原因如下: const person = [ { id : '1' , name : '李子' } ] ; person . test = '123' ; for ( let x in person ) { console . log ( x , person [ x ] ) ; } //0 { id: '1', name: '李子' } //test '123' 当数组对象

JS 数组循环遍历方法的对比

时光总嘲笑我的痴心妄想 提交于 2020-01-24 08:18:42
以下介绍比较简单,最好把代码复制到控制台敲一遍 原生for var arr = [1,2,4,6] for(var i = 0, len = arr.length; i < len; i++){ console.log(arr[i]) } forEach 语句 var arr = [1,5,8,9] arr.forEach(function(item) { console.log(item); }) for-in 语句 一般会使用for-in来遍历对象的属性的,不过属性需要 enumerable,才能被读取到. (关于enumerable,参见我的另一篇博客 defineproperty ) var obj = { name: 'test', color: 'red', day: 'sunday', number: 5 } for (var key in obj) { console.log(obj[key]) } for-of 语句 (ES 6) for-of语句在可迭代对象(包括 Array,Map,Set,String,TypedArray,arguments 对象等等)上创建一个迭代循环 var arr = [{name:'bb'},5,'test'] for (item of arr) { console.log(item) } map 方法 (不改变原数组) map

js循环/迭代/遍历有多少方法

拜拜、爱过 提交于 2020-01-22 18:48:38
js循环/迭代/遍历有多少方法 JavaScript中存在着很多循环的方法 常见的有 for,while,do while,for in 等, ES5中的 forEach , ES6的 for of , jquery中封装的 each for 局限性很大,通过累加数组索引,来输出数组中的值。一般用来遍历数组,不能遍历对象,因为对象的长度是undefined,无法作为其循环的条件。 let person = { name1 : "fur" , age : "1" , hobbies : { study : "code" , play : "games" } } let arr = [ 'fur' , 'furfur' , 'furfur-jiang' ] console . log ( "遍历对象结果:" ) console . log ( "person对象长度= " + person . length ) console . log ( "遍历数组结果:" ) for ( let i = 0 ; i < arr . length ; i ++ ) { console . log ( arr [ i ] ) } for - 循环代码块一定的次数 while - 当指定的条件为 true 时循环指定的代码块 do/while - 同样当指定的条件为 true 时循环指定的代码块

TypeError: person is not iterable关于for of报错

♀尐吖头ヾ 提交于 2020-01-22 18:20:22
TypeError: person is not iterable关于for of报错 因为普通对象不可迭代,而for…of 循环仅适用于迭代。 那么可以用for of 遍历什么呢? for…of 允许你遍历 Arrays(数组), Strings(字符串), Maps(映射), Sets(集合)等可迭代的数据结构等。 语法 for ( variable of iterable ) { statement } variable:每个迭代的属性值被分配给该变量。 iterable:一个具有可枚举属性并且可以迭代的对象。 查看js的各自遍历的用法及实例 来源: CSDN 作者: furfur-jiang 链接: https://blog.csdn.net/weixin_44523860/article/details/104069173

JS笔记 ( 十三 ) 对象的遍历

試著忘記壹切 提交于 2020-01-17 18:21:41
文章目录 1. 属性的调用方法 (1) 直接调用 (2) 名称调用 2. 对象的遍历 语法 作用 示例 3. hasOwnProperty() 方法 作用 示例 备注 4. in 操作符 作用 示例 5. instanceof 操作符 作用 示例 更确切的解释 1. 属性的调用方法 对象中调用属性的表示方法有两种 先创建一个对象 obj = {name: 'name'}; (1) 直接调用 通常直接调用都是以 obj.name 这种形式进行的 但它实际上会在后台转化为 obj['name'] 这种形式 (2) 名称调用 即后台隐式转化的调用方法 obj['name'] 这种形式 这种方法的好处是中括号内的字符串可以进行传输变量且能够拼接字符串, 增加了操作方式, 能适应更多情况下的调用 2. 对象的遍历 语法 for ( var temp in obj ) { //TODO... } 作用 可以通过这种方式来对目标对象的属性进行遍历 这个遍历会自动将目标对象 obj 中的每个属性的名字分别放在每一轮的循环当中, 直到循环结束 每轮循环式, 系统会将 obj 中的变量名放到循环函数定义的接收变量 temp 当中, 然后再在函数体内对每个属性进行操作 备注 temp 只是一个临时变量, 用来接收函数内的属性名而已, 起什么名字都可以 temp 在循环中得到的是一个字符串变量,

前端学习笔记

让人想犯罪 __ 提交于 2019-12-29 21:51:53
HTML 标签 a 标签 < a href = " xxxx " target = ' _blank ' > </ a > //新窗口打开 默认不打开新窗口 ul 标签 type=‘disc’ : 实心圆 type=‘circle’ : 空心圆 type=‘square’ : 实心方块 s 标签语义化 便于开发者 阅读 与维护 利于 seo 搜索引擎优化 语义化兼容性(IE9)插件 html5shiv.js 条件注释 用法: 固定语法 lt : 小于 gt : 大于 lte : 小于等于 gte : 大于等于 <!-- [if lt IE 9]> <h1> 您的版本过低</h1> <![endif]--> CSS 层叠样式优先级(优先级由低到高) 通用选择器:*{…} —————— 权重值 0 标签选择器:div{…} ——————权重值 1 类选择器 :.con{…} —————— 权重值 10 ID选择器: #box{…} ——————权重值 100 行内样式: < … style=’’ …"> —————— 权重值 1000 权重计算规则简记:范围越小越精准权重值就会越大(#box.con.div{…}) 文本属性 < style > .p1 { color : red } /*文本颜色*/ .p2 { font-family : '华文中宋' } /*字体类型*/ .p1