1. ホーム
  2. javascript

[解決済み] 配列内の項目を置換するには?

2022-03-20 19:07:50

質問

この配列の各項目はある数である。

var items = Array(523,3452,334,31, ...5346);

ある項目を新しいものに置き換えるには?

例えば 34521010 どうすればいいのでしょうか?

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

var index = items.indexOf(3452);

if (index !== -1) {
    items[index] = 1010;
}

また、配列の初期化にはコンストラクタ・メソッドを使用しないことをお勧めします。代わりに、リテラル構文を使用してください。

var items = [523, 3452, 334, 31, 5346];

また ~ 演算子を使うことができます。 -1 を比較することができます。

var index = items.indexOf(3452);

if (~index) {
    items[index] = 1010;
}

を書きたい時もあるくらいです。 contains 関数を使って、このチェックを抽象化し、何が起こっているのかを理解しやすくしています。すごいのは、これが配列と文字列の両方で動作することです。

var contains = function (haystack, needle) {
    return !!~haystack.indexOf(needle);
};

// can be used like so now:
if (contains(items, 3452)) {
    // do something else...
}

文字列のES6/ES2015から、そして配列のES2016で提案されているように、ソースに別の値が含まれているかどうかをより簡単に判断できるようになりました。

if (haystack.includes(needle)) {
    // do your thing
}