JavaScript配列に不足している数値を入力します
n個のエントリの配列が与えられ、そのうち2つだけが数値であり、他のすべてのエントリはnullです。このようなもの-
const arr = [null, null, -1, null, null, null, -3, null, null, null];
この配列を取り込んで、これら2つの数値が含まれる一連の算術演算を完了する関数を作成することになっています。この問題をより明確に理解するために、これらのnull値は、配列全体が等差数列を形成するように数値を入力する必要がある空白スペースと考えることができます。
等差数列について
一連の/配列の数は、定数dを(n-1)番目の数に加算することによって配列から任意の数nが形成される場合、等差数列を形成すると言われます。
例-
1, 2, 3, 4, 5, 6, 7, 8
ここで、後続のすべての数値は、先行する数値に定数(この場合は1)を加算することによって取得されます。
その他の例-
1, 1, 1, 1, 1, 1, 1, 1, 1 10, 8, 6, 4, 2, 0, -2
このような級数の最初の要素は通常aで表され、すべての数の一定の進行、共通の差はdで表されます。
したがって、そのようなシリーズのn番目の要素をTnで表すと、
Tn = a + (n -1)d
ここで、nはその数の1ベースのインデックスです。
これらのことを明確にした上で、今説明した問題のコードを記述しましょう。まず、配列の最初の要素(a)と共通の違い(d)を見つけようとします。それらを取得したら、元の配列に対してループを実行してシリーズを生成します。
例
const arr = [null, null, -1, null, null, null, -3, null, null, null]; const arr2 = [null, null, -1, null, null, null, 12, null, null, null, null, null, null]; const constructSeries = (arr) => { const map = { first: undefined, last: undefined }; arr.forEach((el, ind) => { if(el !== null){ if(map['first']){ map['last'] = [el, ind]; }else{ map['first'] = [el, ind]; } }; }); const { first, last } = map; const commonDifference = (last[0] - first[0])/(last[1] - first[1]); const firstElement = (first[0]) - ((first[1])*commonDifference); return arr.map((item, index) => { return firstElement + (index * commonDifference); }); }; console.log(constructSeries(arr)); console.log(constructSeries(arr2));>
出力
コンソールの出力は-
になります[ 0, -0.5, -1, -1.5, -2, -2.5, -3, -3.5, -4, -4.5 ] [ -7.5, -4.25, -1, 2.25, 5.5, 8.75, 12, 15.25, 18.5, 21.75, 25, 28.25, 31.5 ]
-
JavaScript array.values()
JavaScriptのarray.values()は、指定された配列のすべての値を含むイテレータオブジェクトを返します。 以下は、array.values()関数のコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-
JavaScriptでnull/空のオブジェクトを持つ配列に値を割り当てる方法は?
以下は、JavaScript-を使用してnull/空のオブジェクトを含む配列に値を割り当てるコードです。 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> &