我有一個CSV文件與數據,我通過創建與數據的對象數組。其中一個字段的格式爲「0x」,其中x是一個數字。它應該映射到顏色的名稱。我爲這個映射設置了一個具有鍵/值對的對象,但由於某種原因,我無法讓它工作。我只是得到Undefined
。查找對象中的鍵/值與其他對象的鍵
此代碼只是一個簡短的版本,但它說明了我的問題。我看到由於某種原因,myObj.value
和splitData[2]
中的值不等於05
,但這是它的值。所有3個也是字符串的類型,所以我不明白爲什麼會發生這種情況?
var lookup = {
"01": "ONE",
"02": "TWO",
"03": "THREE",
"04": "FOUR",
"05": "FIVE"
};
$("#clicky").click(function(){
var dataFromExternalSource = '1,"color","05"'
var splitData = dataFromExternalSource.split(",");
var myObj = {};
myObj.id = splitData[0];
myObj.name = splitData[1];
myObj.value = splitData[2];
console.log(lookup["05"]);
console.log(lookup[splitData[2]]);
console.log(myObj.value);
console.log(lookup[splitData[myObj.value]]);
console.log(splitData[2] === "05");
console.log(myObj.value === "05");
console.log("typeof: " + typeof(myObj.value) + " - " + typeof(splitData[2]) + " - " + typeof("5"));
});
輸出:
FIVE
undefined
"05"
undefined
false
false
typeof: string - string - string
,因爲它似乎,你想比較字符串05和「05」 - 注意,首先一個就是05年,等一個包含引號爲好。嘗試var dataFromExternalSource ='1,color,05' – user1702401
當然,它必須是如此明顯。我現在覺得很愚蠢。出於某種原因,我認爲「05」的控制檯輸出僅僅意味着它是一個帶有05的字符串,我不認爲字符串本身帶有引號。感謝所有3!當我得到3個同樣有用的答案時,不知道該怎麼做。這是我在這裏的第一個問題。 – ThomasRee