0

言語メッセージ変換用のfromCharCode関数ですが、このように使用した場合にのみ機能します

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])and のように使用すると、同じ結果が返されます。

于 2013-08-02T08:35:22.567 に答える