Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将数字和非数字数组拆分为两个单独的数组_Javascript_Arrays_Loops_Numbers - Fatal编程技术网

Javascript 将数字和非数字数组拆分为两个单独的数组

Javascript 将数字和非数字数组拆分为两个单独的数组,javascript,arrays,loops,numbers,Javascript,Arrays,Loops,Numbers,我对javascript非常陌生,我正在尝试创建一个函数,该函数接受数字的混合输入,然后在数组中循环,以便将它们排序为两个较新的数组,以便我可以进一步操作它们 所以如果我有一个 1,a,2,b,3,c,4,d 我想制作两个新的数组 1,2,3,4和a,b,c,d 到目前为止,我已经能够在逗号处拆分输入字符串,因此现在 1a2b3c4d 我现在需要做的就是把数字和非数字分开。我在考虑使用两个循环:一个用于检查 if(isNan.array[n]==True) 然后尝试找到一种方法,使用循环将字母存

我对javascript非常陌生,我正在尝试创建一个函数,该函数接受数字的混合输入,然后在数组中循环,以便将它们排序为两个较新的数组,以便我可以进一步操作它们

所以如果我有一个 1,a,2,b,3,c,4,d

我想制作两个新的数组 1,2,3,4和a,b,c,d

到目前为止,我已经能够在逗号处拆分输入字符串,因此现在

1a2b3c4d

我现在需要做的就是把数字和非数字分开。我在考虑使用两个循环:一个用于检查

if(isNan.array[n]==True)

然后尝试找到一种方法,使用循环将字母存储到变量中,然后使用另一个循环,使用另一个if函数对数字进行存储

我应该这样做吗?你有什么建议吗

编辑:

我现在有这个代码来检查字母:

if (isNaN(splitResult[L])) {
        for (i = 0; i < splitResult; i++) {
            letterArray.add(splitResult[L]);
            L = L + 1
if(isNaN(splitResult[L])){
对于(i=0;i

当我尝试将结果输出到一个框以计数字母时(使用变量L),没有显示任何内容。我怀疑我已经创建了一个新数组。你需要做的就是循环数组,你可以使用数组原型。或者你可以使用正常的
for
循环来检查数组的每个元素。你现在可以检查每个元素
是否为NaN
,然后适当地推进到正确的数组中。你可以使用下短节

const yourArray = ['1','a','2','b','3','c','4','d'];
const letterArray = [];
const numberArray = [];
yourArray.forEach((eachItem) => {
  if(isNaN(eachItem)){
    letterArray.push(eachItem);
  } else {
    numberArray.push(eachItem);
  }
});

console.log(letterArray, numberArray);

为了完成,首先将字符串拆分为数组:)


为什么要循环两次?执行
if(NaN…)letterArray.add(array[i]);否则numArray.add(array[i]);
您应该先尝试一下……然后如果它没有按预期工作,请在这里问问题,显示您正在使用的代码使用
arrayName.forEach(functionName)
并使用“推送”而不是“添加”在JavaScript的数组中添加新项因此它将是
letterArray.push(item)
。您可以在这里检查forEach示例:而且isNan(item)将返回一个布尔值,因此您不需要将其与true或false等同。您只需使用
if(isNan(item)){}
'因为我对这一点非常陌生;我甚至无法识别您建议的循环。非常感谢您的输入,但我不知道如何替换您提供的代码中的“eachItem”
eachItem
表示数组中的每个值。如果您对
循环使用
,您应该使用
yourArray[index]
forEach
方法可以将函数作为其参数,该函数中指定的第一个参数表示数组的每一项。有关更多详细信息,请查看答案中的链接。因此,在使用您的示例后,我遇到了两个问题。问题是什么?抱歉,我试图编辑该帖子,但它告诉了我我的评论w由于时间太长,所以我放弃了,并在论坛上提出了一个新问题。不过,感谢您的回访;对此表示抱歉!因此,我首先对(;L
分隔,只要用
yourString.split(“”)
替换
yourString.split(“,”)
在分割的字符串(现在是一个数组)上进行每一次修剪:我复制并粘贴了错误的代码,分割结果是我已经分割的数组
let yourString = '1a2b3c4d';
let yourArray = yourString.split('');
let letterArray = [];
let numberArray = [];
yourArray.forEach(item => {
  if(isNaN(item) && typeof item === 'string'){
    letterArray.push(item);
  }
  else if(!isNaN(item) {
    numberArray.push(item);
  }
});

console.log(letterArray, numberArray);