javascript 自定义Map 20251460编辑

Heaven helps those who help themselves
资深码农+深耕理财=财富自由
欢迎关注

javascript 自定义Map

Created by Marydon on 2017-05-25 08:26

迁移时间: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);
}  
复制代码

 

 

与君共勉:最实用的自律是攒钱,最养眼的自律是健身,最健康的自律是早睡,最改变气质的自律是看书,最好的自律是经济独立 。

您的一个点赞,一句留言,一次打赏,就是博主创作的动力源泉!

↓↓↓↓↓↓写的不错,对你有帮助?赏博主一口饭吧↓↓↓↓↓↓

posted @   Marydon  阅读(1460)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示
sorry,本博客所有代码禁止复制,原创代码需扫码支付方可获取!
关闭

1、先加好友再付费,点我加好友;

2、代码不能满足你的需求?加好友付费定制你的专属代码!

3、付费标准及方式,点我查看详情。