1

私はグーグルシートでRFIDスキャナーからのパンチインを整理するプログラムを作ろうとしています...

スキャン[i]を従業員名[j]と照合しようとすると、成功しません。

簡単なifステートメントがあります。

//names[i] is the name of the card for the scan event (card names = employee full name)
var name = names[i];

//the j for loop will check all employee names in the list for a match
var employee = employees[j];
if (name==employee) {
  var ifsuccess = true;
}

しかし、ifsuccess to = trueを取得することはありません...それは明らかかもしれませんが、私はこれまでgoogle script(またはjavascript:P)でプログラミングを行ったことがありません。

スクリーンショット

4

4 に答える 4

1

2つの文字列ではなく、2つの配列オブジェクトを比較しているようです。スクリーンショットは、nameとemployeeが単一の要素を持つインデックス付き配列であると主張しています。

各配列オブジェクト内の文字列データを比較するには:

name[0] == employee[0]     // equal value

または少し安全です:

name[0] === employee[0]    // equal value and of the same type
于 2013-03-23T18:06:36.210 に答える
0

toStringメソッドを使用することも役立つ場合があります。

name.toString()==employee.toString()

しかし、他の提案はよりきれいに見えます。

于 2013-03-23T18:10:36.807 に答える
0

デバッガーでは、両方が文字列を含む配列nameemployee参照していることがわかりますが、これらは2つの異なる配列(内部IDが異なる)であるため、。に関しては等しくありません==

それらの中の文字列を比較したい場合は、

var ifsuccess = name[0] == employee[0];
于 2013-03-23T18:11:13.680 に答える
0
> foo = ['foo'];
[ 'foo' ]
> bar = ['foo'];
[ 'foo' ]
> foo == bar
false
> foo === bar
false

配列と配列の比較-たとえ同じように見えても、実際にメモリ内の同じ配列を参照していない限り、真にはなりません。

> bar = foo;
[ 'foo' ]
> foo == bar
true
> foo === bar
true

したがって、代わりに文字列を比較してみてください。

if (bar[0] === foo[0])
于 2013-03-23T18:06:44.100 に答える