Javascript关于JSON集合的几种循环方法

/**
 * 根据json数据生成option树形控件
 * 如果有children节点则自动生成树形数据
 * @param {JSON} data
 * @param {int} n 节点深度
 * @param {string} char 节点名称前缀
 * @returns {string}
 * @since 1.0 2014-8-22 by sutroon
 * @example
 *      var data = (typeof (data) == "object") ? data : $.parseJSON(data);
 *      var str = ‘‘;
 *      str=generate_options(data);
 */
function generate_options(data, n, char) {
    if (n == undefined) {
        n = 0;
    }
    if (char == undefined) {
        char = ‘..‘;
    }
    var pad = ‘‘;
    while (n > 0) {
        pad += char;
        n--;
    }
    var str = ‘‘;
    if (data.length) {
        // 多行格式
        for (var i = 0; i < data.length; i++) {
            if (data[i].id) {
                // 用于[{"id":"1","name":"name1"}]格式
                str += ‘<option value="‘ + data[i].id + ‘">‘ + pad + (data[i].name ? data[i].name : data[i].text) + ‘</option>‘;
            } else if (data[i].item) {
                // 用于[{"item":"1"},{"item":"2"}]
                str += ‘<option value="‘ + data[i].item + ‘">‘ + pad + data[i].item + ‘</option>‘;
            } else {
                // 用于{"item1","item2"}格式
                str += ‘<option value="‘ + data[i] + ‘">‘ + pad + data[i] + ‘</option>‘;
            }
            if (data[i].children) {
                str += generate_options(data[i].children, n + 1, char);
            }
        }
    }
    else {
        // 用于{"a":"a1","b":"b2"}单行格式
        for (var attr in data) {
            str += ‘<option value="‘ + attr + ‘">‘ + data[attr] + ‘</option>‘;
        }
    }
    return str;
}

版权声明:本文原著天澜(14507247#qq.com),版权遵循知识共享许可协议[查看]。您可自由转载收藏,但请留此声明,感谢!

时间: 2024-10-03 15:48:40

Javascript关于JSON集合的几种循环方法的相关文章

js自动轮播图片的两种循环方法(原创)

用5个div,布局从左到右5张图片,从左到右5个div分别指定ID为img1,img2,img3,img4,img5.(背景是relative,5个div是相对于背景absolute定位) 显示如下: 方法一:(把一个div直接赋值给另一个,轮播一次要for循环5下) 1 function autoplay(){ 2 var x,y,baoliu; 3 baoliu=document.getElementById("img5").style.backgroundImage; 4 for

集合的四种输出方法

Iterator:迭代输出,是使用最多的输出方式,用于输出List中的内容 LIstIterator:是Iterator的子接口,专门用于输出List中的内容 foreach:可以输出数组和集合,用于输出List中的内容 Enumeration:是一个旧的接口,功能与Iterator类似,用于输出Vector中的内容 迭代输出Iterator: package com.iterator; import java.util.ArrayList; import java.util.Iterator;

Map集合的两种迭代方法

直接上代码 1 @Test 2 public void test3(){ 3 4 Map<Integer, String> m = new HashMap<Integer, String>(); 5 m.put(1, "one"); 6 m.put(2, "two"); 7 m.put(3, "three"); 8 Set<Map.Entry<Integer, String>> set = m.en

JavaScript里的循环方法:forEach,for-in,for-of

JavaScript诞生已经有20多年了,我们一直使用的用来循环一个数组的方法是这样的: for (var index = 0; index < myArray.length; index++) {  console.log(myArray[index]); } 自从JavaScript5起,我们开始可以使用内置的forEach方法: myArray.forEach(function (value) {  console.log(value); }); 写法简单了许多,但也有短处:你不能中断循环

JavaScript里的循环方法之forEach,for-in,for-of

JavaScript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能. JavaScript诞生已经有20多年了,我们一直使用的用来循环一个数组的方法是这样的: for (var index = 0; index < myArray.length; index++) { console.log(m

javascript继承—prototype最优两种继承(空函数和循环拷贝)(3) - jssl915

一.利用空函数实现继承 参考了文章javascript继承-prototype属性介绍(2) 中叶小钗的评论指点,对这篇文章中的方案二利用一个空函数进行修改,可以解决创建子类对象时,父类实例化的过程中特权属性和特权方法,私有属性,私有方法的空耗资源问题. function Person(name,age){ this.name = name; this.age = age; } Person.prototype = { constructor:Person, sayHi:function(){

javascript获取json对象的key名称的两种方法

javascript获取json对象的key名称的两种方法 数据处理中,你可能接收到一个不确定内容格式的json对象,然后要把key的值提取出来.今天试过两种可以提取json key的方法,均可以正常工作. 先看第一种方法 jsonObj = { Name: 'richard', Value: '8' }for (key in jsonObj){ console.log(key); //add your statement to get key value} 结果 NameValue 第二种方法

jackson json和对象,集合的几种转换

jackson  json和对象,集合的几种转换 package com.crm.net.util; import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.util.List; import org.codehaus.jackson.JsonParseException

JavaScript 中的12种循环遍历方法

题目:请介绍 JavaScript 中有哪些循环和遍历的方法,说说它们的应用场景和优缺点? 1.for 循环 let arr = [1,2,3];for (let i=0; i<arr.length; i++){ console.log(i,arr[i])}// 0 1// 1 2// 2 3 for 循环是 Js 中最常用的一个循环工具,经常用于数组的循环遍历. 2.for in 循环 let obj = {name:'zhou',age:'**'}for(let i in obj){ con