javascript - 无法识别阵列
问题描述
我不太确定如何解释这一点,但基本上,我有一个输入文本。但是,当我输入格式与数组完全相同的文本时,程序不会将其识别为数组,而是字符串。
如何让我的程序识别我的输入是一个数组?
我在这里输入我的值:
<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 认为我输入了一个字符串而不是一个数组,即使文本的格式类似于数组。
我应该怎么做才能让程序将我的输入识别为数组?
解决方案
不知道你到底想在这里做什么。如果要检测输入的文本是数组,可以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);
}
推荐阅读
- python - 如何创建一个填充有从另一个数组中随机选择的元素的数组
- xml - eBay API 将 XML 解析为 Google 脚本的问题
- javascript - 如何使自定义 vue 指令中的逻辑仅在单击该元素时运行?
- sql-server - 计划备份/还原到不同的 SQL Server 实例
- c++ - 如何使用正确的编码在 Visual Studio 编辑器中打开文件?
- bash - 使用 shell 脚本将每行位置 2 到 4 的数字复制到位置 8 到 10
- python - TypeError:只能将列表(不是“str”)连接到列表 - 熊猫数据框
- php - 在 php while 循环中访问替换的内容
- rest - 如何将 json_serializable 与 Chopper 一起使用?
- javascript - React - 无法获取商店状态以传递子类组件