遍历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 相关文章推荐
Extjs 几个方法的讨论
Jan 28 Javascript
js弹出div并显示遮罩层
Feb 12 Javascript
删除Javascript Object中间的key
Nov 18 Javascript
JavaScript把数组作为堆栈使用的方法
Mar 20 Javascript
JavaScript检测字符串中是否含有html标签实现方法
Jul 01 Javascript
JS+DIV+CSS实现仿表单下拉列表效果
Aug 18 Javascript
jQuery Easyui学习教程之实现datagrid在没有数据时显示相关提示内容
Jul 09 Javascript
微信小程序 弹框和模态框实现代码
Mar 10 Javascript
webpack实现热更新(实施同步刷新)
Jul 28 Javascript
微信小程序开发教程之增加mixin扩展
Aug 09 Javascript
关于vue表单提交防双/多击的例子
Oct 31 Javascript
Javascript实现秒表计时游戏
May 27 Javascript
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高手?学会“懒惰”的编程
2006/12/05 PHP
PHP中函数内引用全局变量的方法
2008/10/20 PHP
PHP生成plist数据的方法
2015/06/16 PHP
ThinkPHP框架实现数据增删改
2017/05/07 PHP
测试JavaScript字符串处理性能的代码
2009/12/07 Javascript
JavaScript Cookie的读取和写入函数
2009/12/08 Javascript
jquery1.5.1中根据元素ID获取元素对象的代码
2011/04/02 Javascript
location对象的属性和方法应用(解析URL)
2013/04/12 Javascript
在jQuery中 常用的选择器介绍
2013/04/16 Javascript
禁止页面刷新让F5快捷键及右键都无效
2014/01/22 Javascript
JavaScript函数详解
2015/02/27 Javascript
使用JavaScript解决网页图片拉伸问题(推荐)
2016/11/25 Javascript
js原生Ajax的封装和原理详解
2017/03/11 Javascript
angular4 共享服务在多个组件中数据通信的示例
2018/03/30 Javascript
Python中非常实用的一些功能和函数分享
2015/02/14 Python
python使用正则表达式分析网页中的图片并进行替换的方法
2015/03/26 Python
分享一个简单的python读写文件脚本
2017/11/25 Python
pandas DataFrame实现几列数据合并成为新的一列方法
2018/06/08 Python
python实现雨滴下落到地面效果
2018/06/21 Python
解决Shell执行python文件,传参空格引起的问题
2018/10/30 Python
python消除序列的重复值并保持顺序不变的实例
2018/11/08 Python
基于python实现高速视频传输程序
2019/05/05 Python
python处理excel绘制雷达图
2019/10/18 Python
分享PyCharm的几个使用技巧
2019/11/10 Python
Pycharm的Available Packages为空的解决方法
2020/09/18 Python
使用html5+css3来实现slider切换效果告别javascript+css
2013/01/08 HTML / CSS
Hertz荷兰:荷兰和全球租车
2018/01/07 全球购物
公司市场部岗位职责
2013/12/02 职场文书
yy结婚证婚词
2014/01/10 职场文书
小学生读书感言
2014/02/12 职场文书
离职证明范本(5篇)
2014/09/19 职场文书
领导班子个人对照检查剖析材料
2014/09/29 职场文书
好员工观后感
2015/06/17 职场文书
房产遗嘱范本
2015/08/06 职场文书
创业计划书之花店
2019/09/20 职场文书
python playwrigh框架入门安装使用
2022/07/23 Python