我已經查找無處不在和所有這個論壇。有人可以幫忙嗎?基本上,indexOf在存儲的變量上返回-1。我很可能錯過了一些簡單的東西,但我似乎無法找到它。Stump - 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/ 很簡單,但是當瓦爾被交換不起作用。如果換出var
homeIndex = list.indexOf(5802),它返回2(正確)。
homeIndex = list.indexOf(atHome)返回-1。 (不正確)
任何人都可以解釋這一點嗎?
因爲'document.write(atHome);'將'atHome'數組強制轉換爲字符串。您應該在代碼中執行'var homeIndex = list.indexOf(atHome [0]);''。 – Redu
Thx,但如果我知道索引號,那麼就不需要indexOf()函數。但是,下面找到了答案。我覺得這是一個簡單的修復,但非常重要。 Thx爲您提供幫助。 – user3112937
如果你使用'document.write'或'alert'或者其他方法來記錄日誌而不是'console.log',你應該總是*把值放在'JSON.stringify(...)' – Bergi