无法识别阵列

时间:2018-07-22 06:36:13

标签: javascript arrays

我不确定如何解释这一点,但是基本上,我有一个输入内容是文字。但是,当我输入格式完全像数组的文本时,程序不会将其识别为数组,而是字符串。

如何使程序识别出我的输入是数组?

我在这里输入我的值:

<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认为即使文本格式像数组一样,我也输入了一个字符串而不是数组。

我应该怎么做才能使程序将我的输入识别为数组?

1 个答案:

答案 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);
}