首页 > 解决方案 > 无法识别阵列

问题描述

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

如何让我的程序识别我的输入是一个数组?

我在这里输入我的值:

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

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

标签: javascriptarrays

解决方案


不知道你到底想在这里做什么。如果要检测输入的文本是数组,可以JSON.parse对值做a,因为从输入框取出的值永远是字符串。

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

推荐阅读