2021-04-01から1ヶ月間の記事一覧
オブジェクトを他のオブジェクトの一部にする オブジェクト配列から要素のキーセットを取得する globalThisのアルファベット小文字からはじまるプロパティの名前を一覧取得する globalThisのアルファベット大文字からはじまるプロパティの名前を一覧取得する…
// オブジェクトのプロパティ記述子配列を取得します。 const GetObjectOwnPropertyDescArray = object => Object.entries(Object.getOwnPropertyDescriptors(window)) // プロパティ記述子配列からデータ記述子を抜き出します。 const FilterOwnPropertyDes…
C++標準ライブラリを使用してUTF-16とUTF-32を相互変換する関数のコードです。コンセプトにより制約するため、C++20以降用です。 u16_surrogate.hpp u16s_u32s.hpp テストコード u16_surrogate.hpp #pragma once namespace u16_surrogate { const char16_t h…
Array.from()はlengthプロパティが正の整数とみなせるオブジェクトを配列様オブジェクト(Array-like object、配列のようなオブジェクト)と判断していると考えられます。 真の配列様オブジェクトかの判断は反復可能オブジェクト以外を与えてArray.from()の…
配列様オブジェクト(Array-like object) 配列様オブジェクトのArray.from()での利用 配列様オブジェクト(Array-like object) MDNのArray.from()の説明には「Array-like object」(「配列様オブジェクト」)あるいは「配列のようなオブジェクト」という表…
以下のコードで文字列をUTF-16コードユニットの配列に変換できます。 Array.from("", s => Array.from({length: s.length}, (_, i) => s.charCodeAt(i))) // Array(3) [ [ 55356, 57166 ], [ 55356, 57162 ], [ 55357, 56833 ] ] Array.from("", s => Array.…
本文 以下のコードで文字列をUnicodeコードポイントの配列に変換できます。 Array.from("", s => s.codePointAt(0)); // Array(3) [ 127822, 127818, 128513 ] 関数にしておくと便利かもしれません。 const getCodePointsFromString = (source) => { if (typ…
#nullable enable using System; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; [MethodImpl(MethodImplOptions.AggressiveInlining)] static uint[] CreateUInt32ArrayRough(ReadOnlySpan<byte> value) => MemoryMarshal.Cast<byte, uint>(v</byte,></byte>…
VC++ではワイド文字列(L"...")に絵文字を含めることができます。この文字列に対してstd::iswgraphを適用しても戻り値はfalseです。 #include <string> #include <cwctype> #include <iostream> #include <iomanip> int main() { const std::wstring s{ L"" }; for (auto i = s.cbegin(); i != s</iomanip></iostream></cwctype></string>…
UTF-16サロゲートペア判定とUTF-16/UTF-32文字列の相互変換コードです。Unicodeの仕様はネット上の解説ページを参照しているため、間違えてる可能性もあります。 #include <algorithm> #include <string> namespace u16_surrogatepair { const char16_t high_surrogate_first =</string></algorithm>…