私はどこでも見てきました。誰かがこれを助けることができますか?基本的に、indexOfはストアド変数に-1を返します。私は何かシンプルなものを見逃してしまったが、見つけられないようだ。Stumped - indexOfはストアド変数の-1を返しています
var t1 = {
"properties" : [
{
"id": 1,
"streetName" : "N. 10th",
"blockNo": "5800",
"addresses" : [5800, 5801, 5802, 5803, 5804, 5005],
"home": [5802]
},
{
"id": 2,
"streetName" : "N. 10th",
"blockNo": "5900",
"addresses" : [5900, 5901, 5902, 5903, 5904, 5905],
"home" : [5904, 5905]
}
]
}
var myProp = t1.properties;
var list = myProp[0].addresses;
var atHome = myProp[0].home;
var homeIndex = list.indexOf(atHome);
document.write(homeIndex); //returns -1. Why is this when the others work?
document.write(atHome); //returns 5802
document.write(list.indexOf(5802)); //returns 2, which is what I'm looking for.
JSFiddleはここにある - https://jsfiddle.net/qmn7h7pb/ 非常にシンプルですがVARSが交換されたときに動作しません。 varをスワップアウトすると、2(正しい)を返します。
homeIndex = list.indexOf(5802)
homeIndex = list.indexOf(atHome)は-1を返します。 (間違っている)
誰でもこれを説明できますか?
'document.write(atHome);は' atHome'配列を文字列に変換します。あなたのコードで 'var homeIndex = list.indexOf(atHome [0]);'を実行する必要があります。 – Redu
Thxしかし、インデックス番号を知っていれば、indexOf()関数は必要ありません。しかし、以下の答えが見つかりました。私はこれが簡単な修正だが非常に重要だと思う。あなたの助けにThx。 – user3112937
'console.log'の代わりに' document.write'や 'alert'などのロギングを行う場合は、' JSON.stringify(...) 'の値を必ず*囲むべきです。 – Bergi