0

用于语言消息转换的 fromCharCode 函数,但它的 nt 仅在像这样使用时才起作用

String.fromCharCode(2991, 3006, 2996, 3009, 2990, 2994, 2991, 2985, 3015)

但是如果放置字符串或数组则根本不起作用,请指导我

 var n1 = '2991,3006,2996,3009,2990,2994,2991,2985,3015';
 var numberArray = [2991,3006,2996,3009,2990,2994,2991,2985,3015];
 var n=String.fromCharCode(numberArray);
 alert(n);
4

1 回答 1

0

由于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]),将返回相同的结果。

于 2013-08-02T08:35:22.567 回答