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); }
与君共勉:最实用的自律是攒钱,最养眼的自律是健身,最健康的自律是早睡,最改变气质的自律是看书,最好的自律是经济独立 。
您的一个点赞,一句留言,一次打赏,就是博主创作的动力源泉!
↓↓↓↓↓↓写的不错,对你有帮助?赏博主一口饭吧↓↓↓↓↓↓
本文来自博客园,作者:Marydon,转载请注明原文链接:https://www.cnblogs.com/Marydon20170307/p/6901895.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通