如何使用JavaScript/jQuery获取JSON数组首个元素的所有键值
如何用JavaScript/jQuery获取JSON数组第一个元素的所有键对应的值
嘿,我来帮你搞定这个问题!首先得指出你测试代码里的小问题:你在循环里用alert(resultJSON[k])是不对的,因为k是第一个对象的键(比如name),而不是数组的索引,所以应该访问resultJSON[0][k]才行。下面给你几种靠谱的实现方式:
原生JavaScript实现
方式1:for...in循环(带属性检查)
这是比较传统的遍历方式,记得加上hasOwnProperty来避免遍历到对象原型链上的无关属性:
var resultJSON = [{"name":"AAA","createdDate":"8/14/2019"},{"name":"ABAB","_id":"52f0e7719c3fccfabfaaf5218bad7d22","createdDate":"8/14/2019"},{"name":"BBB","_id":"848e3d2fcedad749fa8dc22b97db663a","createdDate":"8/14/2019"}]; // 先拿到数组的第一个元素 const firstItem = resultJSON[0]; // 遍历所有键并获取对应值 for (let key in firstItem) { if (firstItem.hasOwnProperty(key)) { console.log(`键:${key},对应值:${firstItem[key]}`); // 如果要用alert展示的话: // alert(`${key}: ${firstItem[key]}`); } }
方式2:Object.keys() + forEach(更现代的写法)
这种写法更简洁清爽,也符合现代JavaScript的风格:
const firstItem = resultJSON[0]; // 获取所有键的数组,再逐个遍历取值 Object.keys(firstItem).forEach(key => { console.log(`键:${key},对应值:${firstItem[key]}`); });
方式3:直接获取所有值的数组
如果你只是想要第一个元素的所有值组成的数组,可以用Object.values()一步到位:
const firstItemValues = Object.values(resultJSON[0]); console.log(firstItemValues); // 输出:["AAA", "8/14/2019"]
jQuery实现
其实jQuery并没有专门针对这个场景的特殊方法,但可以用$.each()来遍历第一个对象的键值对,写法也很简单:
const firstItem = resultJSON[0]; $.each(firstItem, function(key, value) { console.log(`键:${key},对应值:${value}`); });
修正你的原代码
把你原来的代码改对的话,应该是这样:
var resultJSON = [{"name":"AAA","createdDate":"8/14/2019"},{"name":"ABAB","_id":"52f0e7719c3fccfabfaaf5218bad7d22","createdDate":"8/14/2019"},{"name":"BBB","_id":"848e3d2fcedad749fa8dc22b97db663a","createdDate":"8/14/2019"}]; for (var k in resultJSON[0]) { // 这里要访问第一个对象的键对应的值,所以是resultJSON[0][k] alert(`${k}: ${resultJSON[0][k]}`); }
内容的提问来源于stack exchange,提问作者Ansh Jain
相关产品推荐
相关产品推荐

