将int值从数组移动到另一个数组

时间:2016-04-07 18:21:06

标签: javascript arrays int move

我开始学习js,所以我对此很新。我的问题是: 我有一个数组,例如:

var firstArray = [1, 2, "Blue", "Yellow", 5, "Orange"];

然后我需要创建一个新数组(比如secondArray),您将在其中移动firstArray中的所有 int 值。经过一些研究,我发现isNaN将是我所需要的。有人可以试着解释一下我将如何实现这一目标吗?

谢谢。

2 个答案:

答案 0 :(得分:3)

  

使用Array#filter filter()方法创建一个新数组,其中包含通过所提供函数实现的测试的所有元素。



var firstArray = [1, 2, "Blue", "Yellow", 5, "Orange"];
var op = firstArray.filter(Number);
console.log(op);




在每次迭代中,每个项目都会通过Number传递,无法转换为Number的值将返回NaN,这是falsey值,它将是排除。

修改:如canon所述,.filter(Number)如果存在于数组中,也会丢弃0,因为Number(0) === 0 ==> "falsey value"

如果您想在过滤数组中保留0值,请使用isNaN(Number(item))中的Test Function



var firstArray = [1, 2, "Blue", "Yellow", 5, "Orange", 0];
var op = firstArray.filter(function(item) {
  return !isNaN(Number(item));
});
console.log(op);




答案 1 :(得分:0)

上面的方法更酷,更确定!这里使用的是你要求的isNaN:

使用isNaN: JSBIN

function cut(arr){
  var ints = [];
  var others = [];
  for (var i = 0; i < arr.length; i++) {
    if (isNaN(arr[i])) {
      others.push(arr[i]);
    } else {
      ints.push(arr[i]);
    }
  }
  console.log(others);
  console.log(ints);
}