JavaScript简称“JS”,JavaScript 是 Web 的编程语言,所有现代的 HTML 页面都使用 JavaScript,那在工作中我们如何用js遍历嵌套json数组?下面就给大家讲解一下js遍历嵌套json数组的方法。
例如数据库里面的json字符串是这样的:
var str = '[{"name":"宗2瓜","num":"1","price":"122"},{"name":"宗呱呱","num":"1","price":"100"}]'; var xqo = eval('(' + str + ')'); for (var i in xqo) { alert(xqo[i].name); }
上面的是js的,下面的是jquery来解析json字符串:
var cc = jQuery.parseJSON(data); alert(cc[0].title);
js中循环遍历数组有几种方式?
for 循环:
for (let index = 0; index < someArray.length; index++) { const elem = someArray[index]; // ··· }
for 循环的优缺点:
它用途广泛,但是当我们要遍历数组时也很麻烦。
如果我们不想从第一个数组元素开始循环时它仍然很有用,用其他的循环机制很难做到这一点。
for-in 循环:
for (const key in someArray) { console.log(key); }
for-in 不是循环遍历数组的好方法:
它访问的是属性键,而不是值。
作为属性键,数组元素的索引是字符串,而不是数字。
它访问的是所有可枚举的属性键(自己的和继承的),而不仅仅是 Array 元素的那些。
for-in 访问继承属性的实际用途是:遍历对象的所有可枚举属性。
数组方法 .forEach():
someArray.forEach((elem, index) => { console.log(elem, index); });
for-of 循环:
for (const elem of someArray) { console.log(elem); }
for-of 通常是最佳选择。for-of 循环在 ECMAScript 6 开始支持:
const arr = ['a', 'b', 'c']; arr.prop = 'property value'; for (const elem of arr) { console.log(elem); } // Output: // 'a' // 'b' // 'c'
for-of 在循环遍历数组时非常有效:
用来遍历数组元素。
可以使用 await
如果有需要,可以轻松地迁移到 for-await-of。
甚至可以将 break 和 continue 用于外部作用域。
for-of 和可迭代对象
for-of 不仅可以遍历数组,还可以遍历可迭代对象,例如遍历 Map:
const myMap = new Map() .set(false, 'no') .set(true, 'yes') ; for (const [key, value] of myMap) { console.log(key, value); } // Output: // false, 'no' // true, 'yes
'遍历 myMap 会生成 [键,值] 对,可以通过对其进行解构来直接访问每一对数据。
for-of 和数组索引
数组方法 .entries() 返回一个可迭代的 [index,value] 对。如果使用 for-of 并使用此方法进行解构,可以很方便地访问数组索引:
const arr = ['chocolate', 'vanilla', 'strawberry']; for (const [index, elem] of arr.entries()) { console.log(index, elem); } // Output: // 0, 'chocolate' // 1, 'vanilla' // 2, 'strawberry'
我们对比这几种方式来看,发现还是for-of 循环的可用性确实比 for,for-in 和 .forEach() 更好。最后大家如果想要了解更多json相关知识,敬请关注奇Q工具网。
推荐阅读: