从事Java开发的工作者常常会用到Map这个数据结构,但是在微信小程序的数据结构中目前只有以下几种数据结构:
- number : 数值
- string :字符串
- boolean:布尔值
- object:对象
- function:函数
- array : 数组
- date:日期
- regexp:正则
里面并没有Map这个数据结构。不过object提供了键值对功能。
可以在一定程度上替代Java里面的Map对象。以下是常用的几种方法:
var o = {} //生成一个新的空对象
//生成一个新的非空对象
o = {
'string' : 1, //object 的 key 可以是字符串
const_var : 2, //object 的 key 也可以是符合变量定义规则的标识符
func : {}, //object 的 value 可以是任何类型
};
//对象属性的读操作
console.log(1 === o['string']);
console.log(2 === o.const_var);
//对象属性的写操作
o['string']++;
o['string'] += 10;
o.const_var++;
o.const_var += 10;
//对象属性的读操作
console.log(12 === o['string']);
console.log(13 === o.const_var);
//获取对象长度
var length = Object.keys(o).length;
//第一种检测对象中是否有这个属性
"string" in point; //这一个表达式最后返回的将会是true。
“const_var ” in o;//如果键不是字符串,需要把键变成字符串进行检查,否则会出现未定义错误
"toString" in point; //由于toString是继承方法,所以也是返回true.
"z" in point; //这一表达式最后返回false,因为point对象中没有z属性.
//第二种检测对象中是否包含这个属性
o.hasOwnProperty("string"); //true:o有这一属性,
o.hasOwnProperty("const_var "); //true;
o.hasOwnProperty("toString"); //false
//添加属性:
o.lastElement = 0;//这个属性会直接添加进对象o中
//删除
delete o['string'];//删除string元素
delete o[0];//删除第1个元素
修改,可以直接
//遍历循环:
Object.entries(o).forEach(([key, value]) => console.log(`${key}: ${value}`));
for (var item in o){
var key = item;
var value = o[key];
console.log("---->key:"+key+"---->value:"+value);
}
通过以下链接能获取到更详细的资料
参考链接:
https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxs/06datatype.html
https://www.cnblogs.com/pingchuanxin/p/5773326.html#part4
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries