精华内容
下载资源
问答
  • 字符串转对象(strJSON代表json字符串) var obj = eval(strJSON); var obj = strJSON.parseJSON(); var obj = JSON.parse(strJSON);json对象转字符串(obj代表json对象) var str = obj.toJSONString(); var str = ...

    字符串转对象(strJSON代表json字符串) 
      var obj = eval(strJSON); 
      var obj = strJSON.parseJSON(); 
      var obj = JSON.parse(strJSON); 
    json对象转字符串(obj代表json对象) 
      var str = obj.toJSONString(); 
      var str = JSON.stringify(obj) 
    运用时候需要除了eval()以外需要json.js包(切记哦) 

     

    测试一个关联数组,添加数据,删除数据

    html代码

    <span class="btn add">添加数组</span>
          <span class="btn delete">删除数组</span>

    js代码

    /*从数组中根据元素删除指定的项*/
    Array.prototype.indexOf = function(val) {
    for (var i = 0; i < this.length; i++) {
    if (this[i] == val) return i;
    }
    return -1;
    };
    Array.prototype.remove = function(val) {
    var index = this.indexOf(val);
    if (index > -1) {
    this.splice(index, 1);
    }
    };


    $(".add").click(function(){ var arr = []; var aa=["id1","id2","id3"]; var c2={ "id1":["a","1","2111"], "id2":["a2","12","21112"], "id3":["a3","12","21112"] }; console.log(c2.id2); for(var i=0; i<aa.length; i++){ console.log(c2[aa[i]]); arr.push(c2[aa[i]]); console.log("arr:"+arr); } $(".del").click(function(){ arr.remove(c2.id2); console.log("arr删除后:"+arr); }) })

     关联数组的创建与用splice删除数组

    删除数组的js

    //移除元素
    var attrIndexOf = function (target, list, attr) {
        var i = 0, l = list.length;
        for (i = 0; i < l; i += 1) {
            if (list[i][attr] == target) {
                return i;
            }
        };
        return -1;
    };
    var removeItem = function (id) {
        var pos = attrIndexOf(id, newArray, 'dataid');
        if (pos !== -1) {
            newArray.splice(pos, 1);
        };
    };
    attrIndexOf方法确定当前要移除的数组的位置
    removeItem 方法移除数组元素

     

    去重添加数组元素

    if(jQuery.inArray(ObjData, ObjArr)==-1){//如果-1 在选中时push添加
       ObjArr.push(ObjData);    
     }  
    ObjArr是数组,
    ObjData是要插入数组的元素
    inArray方法为-1的时候代表ObjArr数组中还没有ObjData元素,就可以push到数组

    创建二维数组
    var newArray = [];
    var prdArray = [];
            $("#prdlist").delegate("li","click",function(){ 
                var _t=$(this);
                var dataid=_t.data("id");//或许选中的商品id
                var id = "a"+dataid;
                var pic = _t.find(".pic img").attr("src");
                var title = _t.find(".title").html();
                var price = _t.find(".price").html();
                prdArray = {dataid:dataid,pic:pic,title:title,price:price};
                checkedEle(_t,prdArray,newArray,0);//执行选择
                console.log("%c newArray:"+newArray,"background:#c00;color:#fff");
                console.log("%c "+newArray.length,"background:#c00;color:#fff");
                /* 预览区域 */
                var prehtml = "";
                var aLen=newArray.length;
                if(aLen>0){
                    for(var i=0;i<aLen;i++)    { 
                        var dataid = newArray[i]['dataid'];
                        var pic = newArray[i]['pic'];
                        var title = newArray[i]['title'];
                        var price = newArray[i]['price'];
                        prehtml += "<li data-id='"+dataid+"' id='p"+dataid+"'>"
                                    +"<a href='javascript:void(0);'>"
                                    +"<span class='move_area'><i class='layer_icon_move' title='点击我可以拖拽排序哦'></i></span>"
                                    +"<div class='prdinfo'>"
                                    +"<div class='pic'><img src='"+pic+"'></div>"
                                    +"<div class='prd-desc'>"
                                    +"<p class='title'>"+title+"</p>"
                                    +"<p class='price'>"+price+"</p></div>"
                                    +"</div>"
                                    +"<div class='cancleprd'>X</div>"
                                    +"</a></li>";
                    }
                }
                $("#previewprd ul").html(prehtml);
            });

    以上代码,有很多个这样的元素,属性和值不同,点击某个元素,获得当前元素的一些属性值,将它放在一个一维数组prdArray 中,checkedEle是去重添加数组,将一维数组prdArray当成元素push给新数组newArray。

    $("#previewprd ul")里面放由数组拆成的元素重新组合成的html,数组拆出值用for循环var dataid = newArray[i]['dataid'];   这里必须是单引号,双引号和无引号都不行。

     

     

    清空数组方法

    方式1,splice

    var ary = [1,2,3,4];
    ary.splice(0,ary.length);
    console.log(ary); // 输出 [],空数组,即被清空了

    方式2,length赋值为0

    这种方式很有意思,其它语言如Java,其数组的length是只读的,不能被赋值。如

    int[] ary = {1,2,3,4};
    ary.length = 0;

    Java中会报错,编译通不过。而JS中则可以,且将数组清空了,

    var ary = [1,2,3,4];
    ary.length = 0;
    console.log(ary); // 输出 [],空数组,即被清空了

    方式3,赋值为[]

    var ary = [1,2,3,4];
    ary = []; // 赋值为一个空数组以达到清空原数组

    这里其实并不能说是严格意义的清空数组,只是将ary重新赋值为空数组,之前的数组如果没有引用在指向它将等待垃圾回收。

    转载于:https://www.cnblogs.com/snowbaby-kang/p/4022785.html

    展开全文
  • <!... <... <head> ...meta charset="UTF-8">...JavaScript 数组字符串对象</title> </head> <body> <script> var obj = {'name':'yuanxi','age':33,'sex':'男'}; console.log(type
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>JavaScript 数组及字符串对象</title>
    </head>
    <body>
    <script>
        var obj = {'name':'yuanxi','age':33,'sex':'男'};
        console.log(typeof obj);
        console.log(obj.age);
        console.log(obj.name);
        console.log(obj.sex);
        var arr = new Array(1,2,3,4,5,6);
        console.log(arr[0]);
        console.log(arr.length);
        //也可以使用关联数组
        arr['nihao'] = 'ahah';
        console.log(arr);
        console.log(arr instanceof Array);//true
        console.log(typeof arr);//object
        //判断是否是数组类型 js数组也是对象
        console.log(Array.isArray(arr));//true
        //创建数组
        //第一种方式
        var arrData = new Array('a','b',12);
        console.log(typeof arrData);
        console.log(arrData.length);
        //第二种方式
        var arrNews = ['z',12,'asda',7892];
        console.log(arrNews);
        console.log(arrNews.length);
        console.log(typeof arrNews);
        //创建多为数组
        var datas = [1,2,'a',['c','ada',7856]];
        console.log(datas[3][2]);
        console.log(typeof datas);
        console.log(datas);//(4) [1, 2, "a", Array(3)]
        datas[10] = 20;
        console.log(datas);//(11) [1, 2, "a", Array(3), empty × 6, 20]
        //系统提供的方法push()在数组结尾添加
        datas.push('add');
        console.log(datas);
        //修改
        datas[0] = 'ppp';
        console.log(datas);
        //删除 使用delete
        delete datas[1];
        console.log(datas);//(12) ["ppp", empty, "a", Array(3), empty × 6, 20, "add"]
        //删除  使用pop() 删除数组中最后一个元素 并返回被删除的元素
        console.log(datas.pop());//add
        console.log(datas);//(11) ["ppp", empty, "a", Array(3), empty × 6, 20]
        for(var i = 0;i<datas.length;i++){
            console.log('☆' + datas[i] + '☆');
        }
         //数组转为字符串的方法
        var arr = ['aac',5,'asda',true]
        //第一种:拼接一个空的字符串
    //    var str = arr+'';
    //    console.log(typeof str);
    //    console.log(str);
        //第二种:toString
    //    var str = arr.toString();
    //    console.log(str);//aac,5,asda,true
    //    console.log(typeof str);//string
        //第三种:join()
        var str = arr.join('');
        console.log(str);//aac,5,asda,true
        console.log(typeof str);//string
    
    </script>
    </body>
    </html>
    
    展开全文
  • 字符串转对象(strJSON代表json字符串)    var obj = eval(strJSON);   var obj = strJSON.parseJSON();    var obj = JSON.parse(strJSON);  json对象转字符串(obj代表json对象)    var str = obj....

    JS中:

    json格式字符串转json对象(strJSON代表json字符串) 

    var obj = eval(strJSON); 

    var obj = strJSON.parseJSON(); 

    var obj = JSON.parse(strJSON); 


    json对象转json格式字符串(obj代表json对象) 
     var str = obj.toJSONString(); 

     var str = JSON.stringify(obj) 


    运用时候需要除了eval()以外,其他的都需要引入json.js包,切记!!!



    PHP中:

    1、json_encode():

       1.1、将php数组转换为json字符串

    1、索引数组

    $arr  = Array( 'one' 'two' 'three' );
     
    echo  json_encode( $arr );

     输出

    1
    [ "one" , "two" , "three" ]

    2、关联数组:

    1
    2
    3
    $arr  = Array( '1' => 'one' '2' => 'two' '3' => 'three' );
     
    echo  json_encode( $arr );

     输出变为

    1
    { "1" : "one" , "2" : "two" , "3" : "three" }


       1.2、将php类转换为json字符串

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    class  Foo {
     
       const      ERROR_CODE =  '404' ;
     
       public     $public_ex  'this is public' ;
     
       private    $private_ex  'this is private!' ;
     
       protected  $protected_ex  'this should be protected' ;
     
       public  function  getErrorCode() {
     
         return  self::ERROR_CODE;
     
      }
     
    }

     现在,对这个类的实例进行json转换:

    1
    2
    3
    4
    5
    $foo  new  Foo;
     
    $foo_json  = json_encode( $foo );
     
    echo  $foo_json ;

     输出结果是

    1
    { "public_ex" : "this is public" }

    2、json_decode():

    将json文本转换为相应的PHP数据结构

        2.1、通常情况下,json_decode()总是返回一个PHP对象,而不是数组比如:

    1
    2
    3
    $json  '{"a":1,"b":2,"c":3,"d":4,"e":5}' ;
     
    var_dump(json_decode( $json ));

     结果就是生成一个PHP对象:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    object(stdClass)#1 (5) {
     
      [ "a" ] => int(1)
      [ "b" ] => int(2)
      [ "c" ] => int(3)
      [ "d" ] => int(4)
      [ "e" ] => int(5)
     
    }

        2.2、如果想要强制生成PHP关联数组,json_decode()需要加一个参数true:

    1
    2
    3
    $json  '{"a":1,"b":2,"c":3,"d":4,"e":5}' ;
      
     var_dump(json_decode( $json ,true));

     结果就生成了一个关联数组:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    array (5) {
     
        [ "a" ] => int(1)
        [ "b" ] => int(2)
        [ "c" ] => int(3)
        [ "d" ] => int(4)
        [ "e" ] => int(5)
     
    }

    3、json_decode()的常见错误

    下面三种json写法都是错的

    1
    2
    3
    4
    5
    $bad_json  "{ 'bar': 'baz' }" ;
     
    $bad_json  '{ bar: "baz" }' ;
     
    $bad_json  '{ "bar": "baz", }' ;

     对这三个字符串执行json_decode()都将返回null,并且报错。

    第一个的错误是,json的分隔符(delimiter)只允许使用双引号,不能使用单引号。

    第二个的错误是,json名值对的"名"(冒号左边的部分),任何情况下都必须使用双引号。

    第三个的错误是,最后一个值之后不能添加逗号(trailing comma)。

    另外,json只能用来表示对象(object)和数组(array),如果对一个字符串或数值使用json_decode(),将会返回null。

    1
    var_dump(json_decode( "Hello World" ));  //null






    展开全文
  • 方法一: /** * 数组转化为json *@param arr 关联数组 * @return 转化后的json字符串 */ function arrayToJson(arr) { var res = '{'; for (var key in arr){ ...

    方法一:

    /**
             * 数组转化为json
             *@param arr 关联数组
             * @return 转化后的json字符串
             */
            function arrayToJson(arr) {
                var res = '{';
                for (var key in arr){
                    res += '"'+ key + '":"' + arr[key] + '",'
                }
                res = res.substr(0 , res.lastIndexOf(','));
                res += '}';
                return res;
            }

    调用示例:

    var arr = [];
    arr['name'] = '张三';
    arr['sex']  = '男';
    arr['age']  = '25';
    console.log(arrayToJson(arr));

     调用结果:

     方法二:

    /**
             * 数组转化为json
             *@param arr 数组
             * @return 转化后的json字符串
             */
            function arrayToJson(arr) {
                if ((arr.length % 2) == 1){
                    //数组格式不正确
                    return '{}';
                }
    
                var res = '{';
                var j = 0;
                for (var i = 0; i < arr.length ; i++){
                    if (j == i){
                        res += '"' + arr[i] + '":';
                    }else{
                        j  = j + 2;
                        res += '"'+ arr[i] +'",';
                    }
                }
                res = res.substr(0 , res.lastIndexOf(','));
                res += '}';
                return res;
            }

    调用示例:

    var arr = ['name' , '张三' , 'set' , '男' , 'age' , '25'];
    console.log(arrayToJson(arr));

     调用结果:

     

    展开全文
  • 定义这么一个js的“关联数组”: var arr = new Array(); arr['school'] = 1;...一句话,你的 arr 是有两个属性的空数组,数组转字符串当然是展示数组的内容,不会去遍历数组的属性!下面解释: ...
  • 1. 关联数组: 索引数组: 下标为数字的数组 问题: 每个元素,只有值,没有有意义的名称 解决: 关联数组: 可自定义下标名称的数组 如何: 创建: 2步: 1. 先创建空数组: var scores=[] 2. 在空数组中添加新元素,...
  • js中数组与关联数组

    千次阅读 2018-11-30 20:59:20
    常规数组以非负整数作为下标,而关联数组则用字符串作为下标。 JavaScript是一种非类型语言,因此数组元素不必具有相同的类型。
  • 最近遇上的奇怪的数组...不仅可以通过整数来索引它,还可以使用字符串或者其他类型的值(除了NULL)来索引它。 中文名 关联数组 释 义 一种具有特殊索引方式的数组 包 含 标量数据 元素特定顺序 无 关
  • ㈠什么是关联数组 可以自定义下标名称的数组 ㈡为什么 索引数组中的数字下标没有明确的意义 ㈢何时 只希望每个元素都有专门的名称时 ㈣如何:2步 1)创建空数组 2)向空数组中添加新元素,并自定义...
  • 1 JS 索引数组、关联数组和静态数组、动态数组 2 3 数组分类: 4 5 1、从数组的下标分为索引数组、关联数组 6 7 var ary1 = [1,3,5,8]; 8 //按索引去取数组元素,从0开始(当然某些语言实现从1开始...
  • PHP数组的类型-关联数组什么是PHP关联数组?上一篇我们介绍了《PHP数组的类型-数字索引数组》,今天我们具体介绍下关联数组。除了数组索引数组,PHP还有一种关联数组,在其它计算机语言中,一般叫做hash或者map使用...
  • js关联数组转化为json字符串

    千次阅读 2013-12-16 19:40:04
    function arrayToJson(o) { var r = []; if (typeof o == "string") return "\"" + o.replace(/([\'\"\\])/g, "\\$1").replace(/(\n)/g, "\\n").replace(/(\r)/g, "\\r").replace(/(\t)/g, "\\t") + "\"";...
  • js关联数组和索引数组的区别

    千次阅读 2019-09-25 22:09:00
    关联数组的定义就是数组里面的下标为字符串 例如 arr[“index”] 可以简写为arr.index 这时候有人会问为什么上面的arr[“0”]不简写为arr.0 有一个很重要的原因就是 和js里面的小数冲突了 所以简写方式...
  • 关联数组虽然可以用字符串作下标,但是这个下标是不支持参数传值的,换言之,你需要什么就取什么,听起来很智能,实际上你取值仍然需要你手动去写下标的
  • 数据转换js格式的数据是我们常用一种数据传递的方法,特别像ajax中会时常用到把数据转换成json然后再转换回来,下面看一个实例。代码如下复制代码function array_to_json($array) {if (! is_array ( $array )) {...
  • JavaScript 不支持关联数组 如果希望元素名为字符串(文本)则应该使用对象。 如果希望元素名为数字则应该使用数组。 变量定义的let和var 解决自动表单验证,不能为空 添加 required - 学习教程:...
  • 数组分类: 1、从数组的下标分为索引数组、关联数组 代码如下: /* 索引数组,即通常情况下所说的数组 */ var ary1 = [1,3,5,8];...//存取时,以非序数(数字),这里是字符串 ary2[“one”] = 1; ary2[“two”]
  • 单引号字符串形式: $s1 = ‘字符串内容’特点:只能使用2个转义符: \n \t ‘ “ \(代表一个反斜杠) \’(代表一个单引号)通常,如果没有其他特殊需求(比如字符串中使用一些转义符,以及一些变量),则推荐使用单...
  • 我正在制作一个小程序,在静态数组上保存一些数字或字符串。 我希望我的函数在一个数组中保存变量。 但是在我完成我的函数之后,数组也消失了。 如何使我的数组在python中保持静态? 我想在几个功能中修改它。 py_...
  • 这次给大家带来ajax前端的关联数组转json到后台方法,ajax前端的关联数组转json到后台的注意事项有哪些,下面就是实战案例,一起来看一下。很多人碰到过ajax传值时无法直接传数组,而百度的大多数都是不能用的所以我...
  • 本文实例讲述了JavaScript关联数组用法。分享给大家供大家参考,具体如下: 基本概念: “关联数组”是一种具有特殊索引方式的数组。不仅可以通过整数来索引它,还可以使用字符串或者其他类型的值(除了NULL)来索引...
  • 代码如下: var beatles = [“john”,”Paul”,”George”,”Ringo”]; 上面中的beatles数组是个传统数组典型的例子:每个元素的下标是一个...你也可以使用字符串: 代码如下: var lennon = Array(); lennon[“name
  • javascript中的关联数组

    2016-12-30 20:25:44
    javascript中的数组1,索引数组索引数组没有什么可以介绍的,这里重点介绍的是关联数组 下标为数字的数组如:var arr = [1,2,3,4]; 2,关联数组什么是关联数组:可自定义下标名称的数组为什么要使用关联数组普通的...
  • 字符串方法 获取传入下标序号处的字符的Uniicode编码值 str.charCodeAt() 注:字符串比较大小比较的是第一个字符的Unicode编码值 传入Unicode编码值返回对应的字符 String.fromCharCode() ...
  • 由于javascript不支持关联数组,所以json_encode()只将索引数组(indexed array)转为数组格式,而将关联数组(associative array)转为对象格式。 比如,现在有一个索引数组 $arr = Array(‘one’,‘two’, ...
  • javascript关联数组

    2019-10-02 20:26:06
    因而对数组的存取除了熟悉的整形数字下标法之外,还能用采用对象式的存取方法,即关联数组用法。 直接看例子: //array的类型 var arr=[]; arr.name="caochao"; console.log(typeof arr); //object //...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 41,486
精华内容 16,594
关键字:

js字符串转关联数组