有的时候我们需要将两个数组合并成类似HashMap结构的对象,这个对象的组成是把第一个数组作为key,第二个数组作为value
说明:第一个参数是必须的,第二个参数如果未定义的话,目前可以设置为true(或者你认为的其他值)。
简单讲述一下思想吧:
1、因为返回值的是一个对象,预先定义一个返回的obj
2、因为是拿第一个数组的作为key,所以遍历的length按照第一个数组的length来
3、在遍历过程中,往预先定义的obj里面装第二个数组的值,这边就需要判断一下两个数组的长 度,不够的话用true或者其他的值去代替
/*
*hash-merge the two arrays into an obj like hashMap*
*@param {Array} keys---the first array as the key*
*@param {Array} values---the second array as the value
*@remark(if values.length <keys.length will set true)*
*@return {Object} o----the merged object {key:value}*
*@remark(use the first array as the key;if the second array is not defined,we use true)*
*/
ZYC.array.hash = function(keys,values){
var obj = {},
_lengthOfV = values && values.length,
_lengthOfK = keys.length,
i;
for(i=0;i<_lengthOfK;i++){
obj[keys[i]] = (_lengthOfV && _lengthOfV > i) ? values[i] : true;
}
return obj;
}
本文介绍了一种将两个数组转换为类似HashMap对象的方法,该方法使用第一个数组作为键(keys),第二个数组作为值(values)。当值的数量少于键的数量时,会使用默认值(true)填充缺失部分。
171万+

被折叠的 条评论
为什么被折叠?



