web-dev-qa-db-ja.com

GoogleスプレッドシートスクリプトgetValues-文字列の代わりにintを強制します

.getRange()。getValues()にintを返すように強制する方法はありますか?私の範囲には数字しかありませんが、文字列として返しています。すべてのステートメントでparseIntを使用したり、変換された値を使用して個別の配列を作成したりすることは避けたいと思います。

それとも、配列を取得してから配列全体をループでparseIntする唯一の解決策ですか?

9
user1469541

これは、次のように単項 '+'演算子を使用して簡単に行うことができます。

まず、getValue()またはgetValues()を使用してスプレッドシートから値を取得します。そのような値を2つ取得し、それらをA = 1B = 2に格納するとします。文字列を連結する+を除いて、任意の数学バイナリ演算子を使用して、それらを数値として認識させることができます。したがって、A - B = -1は、A + Bは「12」を返します。

文字列として解釈される可能性のある任意の変数で+単項演算子を使用するだけで、変数を強制的に数値にすることができます。たとえば、+A + +Bは正しい値の3を返します。

17
hoogamaphone

parseInt()またはNumber()を使用できます

var A='12';var B=5
A+B = 125
parseInt(A)+B = 17
Number(A)+B = 17

とはいえ、getValues()は、値にスペースやその他の数値以外の文字が含まれていない限り、文字列を返すことは想定されていません...これらの値は手動で入力されたものですか、それとも関数の結果として得られたものですか?

13
Serge insas

getValues()は、オブジェクトの2D配列を返します。したがって、これらは、スプレッドシートでのフォーマットに応じて、文字列、整数、または日付オブジェクトになります。

スプレッドシートに戻り、整数値を持つセルがどのようにフォーマットされているかを確認します。それらを整数としてフォーマットすると、整数が返されます。

2
Srik