二、转化类函数
1. toString 转字符串
function toString (val) {
return val == null
? ''
: Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)
? JSON.stringify(val, null, 2)
: String(val)
}复制
用 Array.isArray 判断变量是否为数组类型 或者 是Object类型,是则用 JSON.stringify 转换;
若为 其他 类型,用 String() 转换 。
2. toNumber 转数字
通过parseFloat 转数字
function toNumber (val) {
var n = parseFloat(val);
return isNaN(n) ? val : n
}
eg:
toNumber(123)
// 123
toNumber('123')
// 123
toNumber('a')
// 'a'
toNumber('123a')
// 123
toNumber('a123')
// 'a123'复制转换成功,将成功的部分返回;
转换失败,返回原来的值。
3. camelize 连字符 转 小驼峰
var camelizeRE = /-(\w)/g;
var camelize = cached(function (str) {
return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })
});
eg:
camelize('on-click') // onClick复制
4. capitalize 首字母大写
var capitalize = cached(function (str) {
return str.charAt(0).toUpperCase() + str.slice(1)
});
eg:
capitalize('hello') // 'Hello'复制
5. hyphenate 小驼峰 转 连字符
var hyphenateRE = /\B([A-Z])/g;
var hyphenate = cached(function (str) {
return str.replace(hyphenateRE, '-$1').toLowerCase()
});
eg:
hyphenate('onClick'); // 'on-click'复制
6. toArray 类数组转为数组,默认从0位置开始
function toArray (list, start) {
start = start || 0;
var i = list.length - start;
var ret = new Array(i);
while (i--) {
ret[i] = list[i + start];
}
return ret
}
eg:
function fn(){
var arr1 = toArray(arguments);
console.log(arr1); // [1, 2, 3, 4, 5]
var arr2 = toArray(arguments, 2);
console.log(arr2); // [3, 4, 5]
}
fn(1,2,3,4,5);
toArray('1,2,3')
// ['1', ',', '2', ',', '3']复制
7. toObject 数组转对象
function toObject (arr) {
var res = {};
for (var i = 0; i < arr.length; i++) {
if (arr[i]) {
extend(res, arr[i]); // 合并
}
}
return res
}
eg:
toObject(['hello', 'world'])
// {0: 'w', 1: 'o', 2: 'r', 3: 'l', 4: 'd'}复制
如有不适,欢迎大家指出~
文章转载自前端怪咖,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。