遍历js中对象的属性和值的实例


Posted in Javascript onNovember 21, 2016

今天优化项目时,遇到了关于”遍历js中对象的属性和值”的需求。之所以会有这个需求,是因为要做一个局部刷新表格内容的js插件。刚开始我去网上荡了一个js分页插件,但是智商实在捉急,搞了半天没搞出来!后来就怒了,干脆自己写一个好了。结果就遇到了这个问题!

问题:通过遍历属性名数组,获取对象的属性值失败

刚开始的错误代码如下:

for(var i=0;i<dataList.length;i++)
{
  var dataLine="<tr>";   
  for(var j=0;j<filedList.length;j++){
    dataLine+="<td>"+dataList[i].filedList[j]+"</td>"; 
  } 
  dataLine+="</tr>";
  $("#"+tableName).append(dataLine);
}

首先说一下,dataList里面放的是对象数组;filedList里面放的是对象的属性字段名数组。刚开始是这样想的,遍历dataList,每次都可以拿到一个对象,然后嵌套for循环,遍历filedList,每次拿到它的一个属性值,然后拼凑成表格。

比如:dataList[0]就是一个Emp对象,而Emp里面有id,name等属性。平常我们就可以通过dataList[0].id得到当前Emp对象的id值。但是如果遍历属性字段数组的话,就不能通过这种方式dataList[0].filedList[0]。这并不是说filedList[0]里面没有获取到值,因为我通过alert(filedList[0])已经得到了这个id值为1。那么为什么获取失败呢?因为它是去找Emp对象里面的一个叫做filedList[0]的属性了!Emp对象里面当然没有这个属性了,所以就理所应当的获取失败了,那么我们又该如何获取对象的属性值呢?

---------------------------------------------

解决方案:用“加强for循环”去遍历

正确代码如下:

for(var i=0;i<dataList.length;i++)
{
  var dataLine="<tr>";   
  for(var filedName in dataList[i]){
    dataLine+="<td>"+dataList[i][filedName]+"</td>"; 
  } 
  dataLine+="</tr>";
  $("#"+tableName).append(dataLine);
}

解决思路:既然dataList[i]是一个对象,那么我每次就可以拿到这个对象的属性名,然后通过dataList[i][filedName],即对象[属性名]的方式得到这个属性的属性值。

参考:JS获得一个对象的所有属性和方法

function displayProp(obj){  
  var names="";    
  for(var name in obj){    
    names+=name+": "+obj[name]+", "; 
  } 
  alert(names); 
}

由此看来,js的功能还是很强大的!

以上这篇遍历js中对象的属性和值的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
iframe 自适应高度[在IE6 IE7 FF下测试通过]
Apr 13 Javascript
JavaScript单元测试ABC
Apr 12 Javascript
主页面中的两个iframe实现鼠标拖动改变其大小
Apr 16 Javascript
Jquery实现的简单轮播效果【附实例】
Apr 19 Javascript
Bootstrap模态框使用详解
Feb 15 Javascript
ES6正则的扩展实例详解
Apr 25 Javascript
Laravel整合Bootstrap 4的完整方案(推荐)
Jan 25 Javascript
JS设计模式之命令模式概念与用法分析
Feb 06 Javascript
node.js的Express服务器基本使用教程
Jan 09 Javascript
JS拖拽排序插件Sortable.js用法实例分析
Feb 20 Javascript
原生js实现瀑布流效果
Mar 09 Javascript
vue 中 get / delete 传递数组参数方法
Mar 23 Vue.js
JavaScript数据结构链表知识详解
Nov 21 #Javascript
jQuery简单自定义图片轮播插件及用法示例
Nov 21 #Javascript
Node.js测试中的Mock文件系统详解
Nov 21 #Javascript
JavaScript中boolean类型之三种情景实例代码
Nov 21 #Javascript
基于jQuery实现Tabs选项卡自定义插件
Nov 21 #Javascript
基于jQuery实现Accordion手风琴自定义插件
Oct 13 #Javascript
详解JSON1:使用TSQL查询数据和更新JSON数据
Nov 21 #Javascript
You might like
php中获得视频时间总长度的另一种方法
2011/09/15 PHP
mysql 查询指定日期时间内sql语句实现原理与代码
2012/12/16 PHP
php中spl_autoload详解
2014/10/17 PHP
PHP中使用GD库创建圆形饼图的例子
2014/11/19 PHP
基于JQuery实现的Select级联
2014/01/27 Javascript
jQuery 获取兄弟元素的几种不错方法
2014/05/23 Javascript
jQuery插件jRumble实现网页元素抖动
2015/06/05 Javascript
新手快速学习JavaScript免费教程资源汇总
2015/06/25 Javascript
自己封装的一个简单的倒计时功能实例
2016/11/23 Javascript
JS实现的Unicode编码转换操作示例
2017/04/28 Javascript
纯html+css+javascript实现楼层跳跃式的页面布局(实例代码)
2017/10/25 Javascript
webpack4打包vue前端多页面项目
2018/09/17 Javascript
js操作table中tr的顺序实现上移下移一行的效果
2018/11/22 Javascript
微信小程序模板template简单用法示例
2018/12/04 Javascript
JavaScript函数定义方法实例详解
2019/03/05 Javascript
深入理解Node内建模块和对象
2019/03/12 Javascript
jQuery Migrate 插件用法实例详解
2019/05/22 jQuery
[00:43]TI7不朽珍藏III——幽鬼不朽展示
2017/07/15 DOTA
[45:25]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.22
2019/09/05 DOTA
Cpy和Python的效率对比
2015/03/20 Python
Python中编写ORM框架的入门指引
2015/04/29 Python
Python 12306抢火车票脚本
2018/02/07 Python
python基础梳理(一)(推荐)
2019/04/06 Python
python 字典的打印实现
2019/09/26 Python
Python利用逻辑回归模型解决MNIST手写数字识别问题详解
2020/01/14 Python
Python 日期的转换及计算的具体使用详解
2020/01/16 Python
python连接mysql有哪些方法
2020/06/24 Python
Jacques Lemans德国:奥地利钟表品牌
2019/12/26 全球购物
如何使用PHP session
2015/04/21 面试题
课例研修方案
2014/05/31 职场文书
工程学毕业生自荐信
2014/06/14 职场文书
中学生纪念九一八事变演讲稿
2014/09/14 职场文书
政府班子四风问题整改措施
2014/10/04 职场文书
刘公岛导游词
2015/02/05 职场文书
2015年度绩效考核工作总结
2015/05/27 职场文书
Python 读取千万级数据自动写入 MySQL 数据库
2022/06/28 Python