この配列の各項目は何らかの数値です。
var items = Array(523,3452,334,31, ...5346);
アイテムを新しいものと交換するにはどうすればいいですか?
たとえば、3452
を に置き換えたいのです1010
が、どうすればよいでしょうか?
ベストアンサー1
var index = items.indexOf(3452);
if (index !== -1) {
items[index] = 1010;
}
また、配列を初期化するためにコンストラクター メソッドを使用しないことをお勧めします。代わりに、リテラル構文を使用します。
var items = [523, 3452, 334, 31, 5346];
~
簡潔な JavaScript を使用して比較を短縮したい場合は、演算子を使用することもできます-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
}