遍历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 相关文章推荐
JQuery 返回布尔值Is()条件判断方法代码
May 14 Javascript
jquery无缝向上滚动实现代码
Mar 29 Javascript
5秒后跳转效果(setInterval/SetTimeOut)
May 03 Javascript
js中一个函数获取另一个函数返回值问题探讨
Nov 21 Javascript
SelecT下拉框选中和取值的解决方法
Nov 22 Javascript
前端图片懒加载(lazyload)的实现方法(提高用户体验)
Aug 21 Javascript
Angular2.0/4.0 使用Echarts图表的示例代码
Dec 07 Javascript
利用npm 安装删除模块的方法
May 15 Javascript
vue 组件的封装之基于axios的ajax请求方法
Aug 11 Javascript
小程序日历控件使用方法详解
Dec 29 Javascript
详解微信小程序获取当前时间及日期的方法
Apr 28 Javascript
在Vue项目中,防止页面被缩放和放大示例
Oct 28 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模板的朋友必看的很多个顶级PHP模板引擎比较分析
2008/05/26 PHP
php 数组二分法查找函数代码
2010/02/16 PHP
php判断输入不超过mysql的varchar字段的长度范围
2011/06/24 PHP
curl实现站外采集的方法和技巧
2014/01/31 PHP
PHP实现打包zip并下载功能
2018/06/12 PHP
php写入txt乱码的解决方法
2019/09/17 PHP
js 禁用浏览器的后退功能的简单方法
2008/12/10 Javascript
JavaScript 获得选中文本内容的方法
2009/02/15 Javascript
精通Javascript系列之数据类型 字符串
2011/06/08 Javascript
jQuery 拖动层(在可视区域范围内)
2012/05/24 Javascript
探索Emberjs制作一个简单的Todo应用
2012/11/07 Javascript
JavaScript改变HTML元素的样式改变CSS及元素属性
2013/11/12 Javascript
JavaScript显示表单内元素数量的方法
2015/04/02 Javascript
JS简单限制textarea内输入字符数量的方法
2015/10/14 Javascript
angularjs+bootstrap实现自定义分页的实例代码
2017/06/19 Javascript
微信小程序中button组件的边框设置的实例详解
2017/09/27 Javascript
jQuery 获取除某指定对象外的其他对象 ( :not() 与.not())
2018/10/10 jQuery
微信小程序学习笔记之跳转页面、传递参数获得数据操作图文详解
2019/03/28 Javascript
使用Phantomjs和Node完成网页的截屏快照的方法
2019/07/16 Javascript
p5.js临摹动态图形实现方法详解
2019/10/23 Javascript
微信小程序实现单个或多个倒计时功能
2020/11/01 Javascript
python的re模块应用实例
2014/09/26 Python
详解Django中的ifequal和ifnotequal标签使用
2015/07/16 Python
python爬虫爬取淘宝商品信息(selenum+phontomjs)
2018/02/24 Python
Python生成六万个随机,唯一的8位数字和数字组成的随机字符串实例
2020/03/03 Python
基于Python编写一个计算器程序,实现简单的加减乘除和取余二元运算
2020/08/05 Python
小狗电器官方商城:中国高端吸尘器品牌
2017/03/29 全球购物
出门问问全球官方商城:Tichome音箱和TicWatch智能手表
2017/12/02 全球购物
JMS中Topic和Queue有什么区别
2013/05/15 面试题
中学生在校期间的自我评价分享
2013/11/13 职场文书
先进班级集体事迹材料
2014/01/30 职场文书
机关工会开展学习雷锋活动总结
2014/03/01 职场文书
公司员工离职证明书
2014/10/04 职场文书
节约用电通知
2015/04/25 职场文书
计算机实训心得体会
2016/01/14 职场文书
Navicat Premium自定义 sql 标签的创建方式
2022/09/23 数据库