由于String.fromCharCode
适用于arguments
,正确的定义是您提供的第一个。如果您需要使用其他必须使用的apply
:
var arr = [2991,3006,2996,3009,2990,2994,2991,2985,3015],
converted = String.fromCharCode(String, a);
或者,如果您需要使用字符串,只需将其拆分为数组,然后apply
使用上述方法。
var str = '2991,3006,2996,3009,2990,2994,2991,2985,3015',
arr = str.split(','),
converted = String.fromCharCode(String, a);
一个很小且非常基本的功能,涵盖了所有这些功能:
function convert() {
var arr = [],
arg = arguments[0];
if(typeof arg === 'number') { // assume all args are numbers, split them into the array
arr = Array.prototype.splice.call(arguments, 0);
} else if(typeof arg === 'string') { // string, let's split it into an array!
arr = arg.split(',');
} else if(typeof arg === 'object') { //typeof returns object, but it should be an array
arr = arguments[0];
}
return String.fromCharCode.apply(String, arr);
}
像convert('2991,3006,2996,3009,2990,2994,2991,2985,3015')
or一样使用它convert([2991,3006,2996,3009,2990,2994,2991,2985,3015])
,将返回相同的结果。