如何使用js 动态创建json分组数据?

如何使用js 动态创建json分组数据?,第1张

之前我已经有讲过后台返回json数据到前台,并在前台遍历json数据。

这里讲下直接在JS里创建JSON数据,然后遍历使用~

创建代码如下:(创建的是JSON对象

?

12345678

var YearSelect = {}var Year = 2014var DateOptionfor (var i = Yeari <Year + 12i++) { DateOption = {'Year':i, 'Month':i-Year+1}/ alert(DateOption.Year) YearSelect[i] = DateOption}

这里是创建一个JSON对象,包括了年份和月份的数据。

我为什么创建JSON对象,是因为我对JSON对象比较熟悉。php后台返回的也是json对象。

json对象没有length属性~~

所以遍历的话要:

for(var key in YearSelect){ alert(YearSelect[key].Year)alert(YearSelect[key].Month)}

这样就可以了~

记住一定要分辨好json的对象和数组~不然就一直是undenfined

const groupBy = (array, f) =>{

    let groups = {}

    array.forEach(function (o) {

        var group = JSON.stringify(f(o))

        groups[group] = groups[group] || []

        groups[group].push(o)

    })

    return Object.keys(groups).map(function (group) {

        return groups[group]

    })

}

const arrayGroupBy = (list, groupId) =>{

    let sorted = groupBy(list, function (item) {

        return [item[groupId]]

    })

    return sorted

}

arrayGroupBy(数组, '字段名称')

1、打开任一浏览器,按F12,进入开发者模式,找到控制台。本文以chrome浏览器为例,打开浏览器之后,打开任一标签页,找到Console控制台。

2、在控制台中,就可以书写js代码了。首先在此处定义一个js对象。直接使用 var obj1 = {}定义即可。

3、在控制台中,给js对象赋值,因为js是弱类型的语言,上面定义的对象并不需要指定字段类型,所以,在定义之后,就可以直接给它赋值了。

4、相同的方式,再定义另外一个js对象。直接使用 var obj2 = {}定义即可 。

5、在控制台中,给obj2对象赋值,而且,使用与obj1不相同的字段结构。

6、在控制台中,定义一个数组,定义方式如下:var arr = new Array()。

7、在控制台中,使用arr.push(obj1),就可以将对象1存放到js数组中。arr.push(obj2),就可以将对象2存放到js数组中。注意,obj1、obj2两个对象的字段是不相同的,但是,也是可以存放到同一个js数组中的,因为js是弱类型的。最后,直接使用arr,就可以看到当前数组中的对象值。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11964633.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存