1. ホーム
  2. javascript

[解決済み] javascriptで、配列の部分文字列を検索するにはどうすればよいですか?

2023-03-20 01:42:39

質問

javascriptで配列を検索する必要があります。検索は、文字列がそれに割り当てられた追加の数字を持っているので、一致する文字列の一部だけであるだろう。私はその後、完全な文字列で正常に一致した配列要素を返す必要があります。

すなわち

var windowArray = new Array ("item","thing","id-3-text","class");

で配列要素を検索したいのですが "id-" が含まれる配列要素を検索し、その要素に含まれる残りのテキストも引き出す必要があります (つまり、. "id-3-text" ).

ありがとうございます

どのように解決するのですか?

あなたの具体的なケースでは、退屈な古いカウンターを使えばいいのです。

var index, value, result;
for (index = 0; index < windowArray.length; ++index) {
    value = windowArray[index];
    if (value.substring(0, 3) === "id-") {
        // You've found it, the full text is in `value`.
        // So you might grab it and break the loop, although
        // really what you do having found it depends on
        // what you need.
        result = value;
        break;
    }
}

// Use `result` here, it will be `undefined` if not found

しかし、もしあなたの配列が を使えば、より効率的に、適切に設計された for..in ループでより効率的に行うことができます。

var key, value, result;
for (key in windowArray) {
    if (windowArray.hasOwnProperty(key) && !isNaN(parseInt(key, 10))) {
        value = windowArray[key];
        if (value.substring(0, 3) === "id-") {
            // You've found it, the full text is in `value`.
            // So you might grab it and break the loop, although
            // really what you do having found it depends on
            // what you need.
            result = value;
            break;
        }
    }
}

// Use `result` here, it will be `undefined` if not found

素朴に注意 for..in ループは hasOwnProperty!isNaN(parseInt(key, 10)) をチェックします。 というわけで .


オフトピック :

別の書き方

var windowArray = new Array ("item","thing","id-3-text","class");

var windowArray = ["item","thing","id-3-text","class"];

...の方がタイプ数が少なく、おそらく(この部分は主観的ですが)もう少し読みやすいでしょう。この2つの文は全く同じ結果をもたらします。これらの内容を持つ新しい配列です。