[英]JavaScript calling function(int) with a regex match for numbers causes errors
我正在使用Node.js用電子制作應用程序。 在我的代碼中,我有這樣的東西:
var id = element.match(/(-?\d+)/g);
其中element是一個類似於以下結構的字符串:
The id of this string is 100, ...
我有一個包含稱為項目的對象的數組:
var items = [];
預先填充數組。 每個項目都有一個名為getId()
的函數,該函數返回其ID,該ID也是一個數字:
exports.getId = function() {
return id;
};
該程序應該將id傳遞給另一個函數:
function getItemById(id) {
for (var item in items) {
if (items[item].getId() === id) {
return items[item];
}
}
return null;
}
但是,當我嘗試將getItemById(id)
與字符串匹配的ID一起使用時,出現以下錯誤:
Uncaught TypeError: items[item].getId is not a function
這很奇怪,因為當我嘗試執行以下操作之一時,我沒有收到任何錯誤,並且程序按預期運行:
var item = getItemById(100);
var item = getItemById(parseInt("100"));
我需要從字符串中獲取ID作為一個數字,並將其傳遞給getItemById(id)
函數。
match函數返回與正則表達式匹配的字符串數組。 假設輸入字符串僅包含一個數字,則應從結果中獲取第一個元素。
var element = 'The id of this string is 100, ...';
var id = element.match(/(-?\d+)/g)[0];
編輯:您得到的錯誤可能是由於items[item]
不是您期望的類型,因此不存在名為getId
函數。 檢查如何填充items
數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.