• javascript 自定义Map


    迁移时间:2017年5月25日08:24:19

    Author:Marydon

    三、自定义Map数据格式

    需特别注意的是:

      js中没有像java中的Map数据格式,js自带的map()方法用于:返回一个由原数组中的每个元素调用一个指定方法后的返回值组成的新数组。

    map()使用指南:http://www.cnblogs.com/rocky-fang/p/5756733.html

      (一)数据格式介绍

        java中Map数据格式组成:{key=value, key=value,...} 

        格式:键与值之间用"="拼接,键值对之间用","拼接。

      (二)操作Map

        3.2.1 Map赋值  

        实现方式:字符串拼接  

        拼接方式:同上

        举例:

    var mapString = "";
    var value1 = "张三";
    var value2 = "123";
    mapString += "userName=" + value1 + ",";
    mapString += "password=" + value2;
    mapString = "{" + mapString + "}";//最后拼接上"{}"

      (三)格式转换

        3.1 mapString转换成JSON对象

    /**
     * 将map形式的字符串转成JSON对象
     * @param {string} mapStr
     *   java-Map格式字符串
     */
    function mapstringToJSON (mapStr) {
        // 1.去除字符串中所有的"
        mapStr = mapStr.replace(/"/g, "");
        // 2.去除掉"{}"
        mapStr = mapStr.substring(1, mapStr.length - 1);
        // 3.将map字符串用逗号拆分成数组
        var strs = mapStr.split(",");
        var jsonStr = "";//JSON字符串
        var keyValue = new Array(2);//声明一个长度为2的数组
        var key = "";//JSON-键
        var value = "";//JSON-值
        // 4.迭代map键值对
        $(strs).each(function(index, str) {
            keyValue = str.split("=");//按等号拆分成数组
            key = '"' + keyValue[0].trim() + '"';
            value = '"' + keyValue[1].trim() + '"';
            jsonStr += key + ":" + value + ",";//标准的JSON拼接格式
        });
        // 5.去除最后一个逗号并拼接"{}"
        jsonStr = "{" + jsonStr.substring(0, jsonStr.length - 1) + "}";
        // 6.json字符串转成JSON对象
        var json = eval('(' + jsonStr + ')');
        return json;
    }

        举例:

    /**
     * 遍历JSON对象
     */
    var key = "";//
    var value = "";//
    var keyValue = "";//键值对
    for (var item in jsonObj) {
        key = item;
        value = jsonObj[item];//这里只能使用"[]"取值,使用"."(jsonObj.item)取不到值
        keyValue = item + ":" + value;
        console.log(keyValue);
    }  
  • 相关阅读:
    html标签嵌套规则
    关于setTimeout和Promise执行顺序问题
    vue基础
    new操作符具体干了什么
    ["1", "2", "3"].map(parseInt)
    线性表
    树的一些概念和性质
    A*与IDA*
    树上启发式合并
    启发式合并
  • 原文地址:https://www.cnblogs.com/Marydon20170307/p/6901895.html
Copyright © 2020-2023  润新知