我不确定如何解释这一点,但是基本上,我有一个输入内容是文字。但是,当我输入格式完全像数组的文本时,程序不会将其识别为数组,而是字符串。
如何使程序识别出我的输入是数组?
我在这里输入我的值:
<input id="inputArray" type="text" style="width:50%" placeholder="Your Array" oninput="storeArray(this.value)" onchange="storeArray(this.value)">
我使用MiddleArray变量存储值。
function storeArray(value) { //stores the input value
middleArray = value;
console.log(middleArray);
}
MiddleArray认为即使文本格式像数组一样,我也输入了一个字符串而不是数组。
我应该怎么做才能使程序将我的输入识别为数组?
答案 0 :(得分:1)
不确定您要在这里做什么。如果要检测输入的文本是数组,则可以对值进行JSON.parse
,因为从输入框中获取的值将始终是字符串。
function storeArray(value) {
middleArray = JSON.parse(value);
console.log(middleArray); // Will be an array
}
请注意,上面的函数尝试将字符串解析为JS对象(在您的情况下为数组)。如果您尝试解析无效的对象字符串表示形式,则可能会导致错误。您总是可以在解析之前尝试进行脏检查,或者使用try-catch
块来减轻任何错误:
function storeArray(value) {
value = value.trim();
middleArray = null;
if (value[0] === '[' && value[value.length - 1] === ']') {
middleArray = JSON.parse(value);
}
console.log(middleArray);
}