JavaScriptは、数値と対応するASCII文字との変換を行う【fromCharCode、fromCodePoint、charCodeAt、codePointAt】
3063 ワード
引用:
今日、JSオブジェクト配列を動的に作成する必要があります.オブジェクトのkey値は同じではありません(正確には秩序あるアルファベットです).具体的には、次のようになります.
一見簡単な感じですが、よく見ると、私たちがよく見ているオブジェクトを作成するのとは大きな違いがあります.通常、私たちが作成したオブジェクトは、keyがハードコーディングされているため、以下のようになります.
さらに、各itemオブジェクトは構造が似ていますが、key値は完全に同じではありません.keyは秩序あるアルファベットの組み合わせです.
この問題を解決するには、次の2つの問題を解決する必要があります. itemオブジェクトkey名の動的指定 key値の秩序生成 key名の動的指定:
各itemオブジェクトkey名、動的指定、2つの方法を解決します. eval()関数を使用して を解決プロパティアクセサによる解決(PS:すなわち'[key]') プロパティ・アクセサについては、上のリンクをクリックして取得します.ここでは、プロパティ・アクセサDemoを直接示します.
key値の秩序生成:
この秩序あるkey(A,B,C,D......)を知っています.生成するときはASCII文字の符号化特性を用いて実現するのが望ましいが,ASCIIと対応する文字マッピング(正確数を符号化ルールと呼ぶ)を実現するには,C/C++という言語では簡単で,charを直接演算したり,直接強制型変換したりすることでintをcharに変換することができるからである.
しかし、残念ながらJSでは直接操作できず、対応する関数でしか実現できません.正直、これらの関数は必ず存在すると思いますが、使ったことがありません.コードが少なすぎるようです.必要な関数はfrom Char Code、from Code Point、charCodeAt、code PointAtです
from Char Code、from Code Pointは、asciiコードに対応する数字を対応する文字に変換する役割を果たします
charCodeAt、code PointAtは、対応する文字を対応するデジタルasciiコード値に変換する役割を果たす
両者の使用はとても简単で、リンクをクリックしてMDNの详しいドキュメントを参照することができて、ここの列は简単な使用Demoを出します
総合的に需要を実現する最終的なDemoは以下の通りである.
本文は技術的な含有量はありませんが、初心者には役に立つかもしれません.ここでは主に記録をして後で見るのに便利です.
今日、JSオブジェクト配列を動的に作成する必要があります.オブジェクトのkey値は同じではありません(正確には秩序あるアルファベットです).具体的には、次のようになります.
var options = [
{"A":" A XXXX"},
{"B":" B XXXX"},
{"C":" C XXXX"},
{"D":" D XXXX"},
]
一見簡単な感じですが、よく見ると、私たちがよく見ているオブジェクトを作成するのとは大きな違いがあります.通常、私たちが作成したオブジェクトは、keyがハードコーディングされているため、以下のようになります.
var person = {};
person.name = " "; // key name
さらに、各itemオブジェクトは構造が似ていますが、key値は完全に同じではありません.keyは秩序あるアルファベットの組み合わせです.
この問題を解決するには、次の2つの問題を解決する必要があります.
各itemオブジェクトkey名、動的指定、2つの方法を解決します.
eval()
関数は、入力された文字列をJavaScriptコードとして実行します【PS:この関数は文字列をJSコードとして解析して実行することができるので、使用する場合は、必ずセキュリティの問題を考慮し、詳細はここでは説明しません】.詳細はリンクをクリックしてMDNを参照し、以下は小さなDemoです.var person = {}
var key = 'name'
eval('person.' + key + "=" + "' '"); // , JS , key
console.dir(person)
var person = {}
var key = 'name'
person[key] = " " // JS key
console.dir(person)
key値の秩序生成:
この秩序あるkey(A,B,C,D......)を知っています.生成するときはASCII文字の符号化特性を用いて実現するのが望ましいが,ASCIIと対応する文字マッピング(正確数を符号化ルールと呼ぶ)を実現するには,C/C++という言語では簡単で,charを直接演算したり,直接強制型変換したりすることでintをcharに変換することができるからである.
char c = 'A';
// int n = (int)c;
// char b = (char)n;
printf("n = %d
", n); // n = 65
printf("b = %c
", b); // b = A
しかし、残念ながらJSでは直接操作できず、対応する関数でしか実現できません.正直、これらの関数は必ず存在すると思いますが、使ったことがありません.コードが少なすぎるようです.必要な関数はfrom Char Code、from Code Point、charCodeAt、code PointAtです
from Char Code、from Code Pointは、asciiコードに対応する数字を対応する文字に変換する役割を果たします
charCodeAt、code PointAtは、対応する文字を対応するデジタルasciiコード値に変換する役割を果たす
両者の使用はとても简単で、リンクをクリックしてMDNの详しいドキュメントを参照することができて、ここの列は简単な使用Demoを出します
console.log("ascii to char:" + String.fromCodePoint(65)) // ascii to char: A
console.log("ascii to char:" + String.fromCharCode(65)) // ascii to char: A
console.log("char to ascii:" + 'A'.charCodeAt(0)) // char to ascii: 65
console.log("char to ascii:" + 'A'.codePointAt(0)) // char to ascii: 65
総合的に需要を実現する最終的なDemoは以下の通りである.
var char = 'A';
console.log("ascii to char:" + String.fromCodePoint(65)) // ascii to char: A
console.log("char to ascii:" + 'A'.charCodeAt(0)) // char to ascii: 65
var options = []
for(index = 0 ; index< 4; index++){
var option = {}
option[char] = " " + char + "XXX";
options.push(option)
char = String.fromCharCode(char.charCodeAt(0) + 1);
}
console.log(options)
本文は技術的な含有量はありませんが、初心者には役に立つかもしれません.ここでは主に記録をして後で見るのに便利です.