如何提取JSON数组日期字段值并转为目标字符串数组?
解决方案:将对象数组转换为日期字符串数组
嘿,我来帮你搞定这个转换问题!你现在的代码只是遍历输出了每个包含date属性的对象,但还没把里面的日期字符串提取出来并收集成目标数组。这里有几种简单的实现方式:
1. 用Array.map()(最简洁推荐)
map方法专门用来对数组的每个元素做转换,生成新数组,非常适合你的场景:
var datesBooking = [ {"date":"04\/24\/2018"}, {"date":"04\/25\/2018"} ]; // 遍历每个对象,提取date属性值组成新数组 var dateStrings = datesBooking.map(item => item.date); console.log(dateStrings); // 输出: ['04/24/2018', '04/25/2018']
2. 用传统for循环
如果你更习惯用基础的循环写法,可以这样收集结果:
var datesBooking = [ {"date":"04\/24\/2018"}, {"date":"04\/25\/2018"} ]; var dateStrings = []; for (var i = 0; i < datesBooking.length; i++) { // 把每个对象的date属性值推入新数组 dateStrings.push(datesBooking[i].date); } console.log(dateStrings);
3. 用Array.forEach()
这也是一种遍历数组的常用方式,写法更直观:
var datesBooking = [ {"date":"04\/24\/2018"}, {"date":"04\/25\/2018"} ]; var dateStrings = []; datesBooking.forEach(item => { dateStrings.push(item.date); }); console.log(dateStrings);
为什么你原来的代码没得到目标结果?
你用for...in遍历数组时,拿到的是数组的索引(比如0、1),然后datesBooking[key]输出的是整个对象(比如{"date":"04/24/2018"}),而不是对象里的date值。只要在遍历的时候提取item.date并收集到新数组里,就能得到你想要的格式啦!
内容的提问来源于stack exchange,提问作者Juan David
相关产品推荐
相关产品推荐

