Javascript 通过过滤空项从数组构造新数组
我试图构建一个数组,它在另一个数组上循环,大致如下所示Javascript 通过过滤空项从数组构造新数组,javascript,Javascript,我试图构建一个数组,它在另一个数组上循环,大致如下所示 var x = [1, null, 324, 110, null] 我试图循环这个,并检查索引I处的项是否为null,然后它进入一个新数组 var numberCollection = []; for(var i = 0; i < x.length; i++){ numberCollection[i] = (!!x[i]) ? x[i]; } console.log(numberCollection) var numb
var x = [1, null, 324, 110, null]
我试图循环这个,并检查索引I处的项是否为null,然后它进入一个新数组
var numberCollection = [];
for(var i = 0; i < x.length; i++){
numberCollection[i] = (!!x[i]) ? x[i];
}
console.log(numberCollection)
var numberCollection=[];
对于(变量i=0;i
这肯定不行。我错过了什么?我看到了一些从数组中删除无效项的示例,但这超出了本文的范围
for(var i = 0; i < x.length; i++){
if (x[i] !== null){
numberCollection.push(x[i]);
}
}
for(变量i=0;i
试试这样的方法
for(var i = 0; i < x.length; i++){
if (x[i] !== null){
numberCollection.push(x[i]);
}
}
for(变量i=0;i
让我们调用第一个数组(具有空值的数组)A[]和第二个数组B[]。我们还需要一个整数计数
for(var i=0; i<A.length; i++){
if(A[i] != NULL){
B[count] = A[i];
count++;
}
}
for(var i=0;i让我们调用第一个数组(具有null的数组)A[]和第二个数组B[]。我们还需要一个int计数
for(var i=0; i<A.length; i++){
if(A[i] != NULL){
B[count] = A[i];
count++;
}
}
for(var i=0;i其他答案有效…为了给您另一个选项,您可以使用ECMAScript 5中引入的新的filter()
方法:
var numberCollection = x.filter(function(item) {
return !!item;
});
请注意,要在IE8及以下版本中实现此功能,您需要为filter()方法提供一个垫片;这里有一个:。其他答案有效…为了给您另一个选项,您可以使用ECMAScript 5中引入的新的filter()
方法:
var numberCollection = x.filter(function(item) {
return !!item;
});
请注意,要在IE8及以下版本中实现此功能,您需要为filter()方法提供一个垫片;这里有一个垫片:。以下各项似乎可以正常工作
var x = [1, null, 324, 110, null];
var numberCollection = [];
var k = 0;
for(i = 0; i < x.length; i++) {
if (x[i] === null) {
continue;
} else {
numberCollection[k++] = x[i];
}
}
console.log(numberCollection);
var x=[1,null,324,110,null];
var numberCollection=[];
var k=0;
对于(i=0;i
以下方法似乎很有效
var x = [1, null, 324, 110, null];
var numberCollection = [];
var k = 0;
for(i = 0; i < x.length; i++) {
if (x[i] === null) {
continue;
} else {
numberCollection[k++] = x[i];
}
}
console.log(numberCollection);
var x=[1,null,324,110,null];
var numberCollection=[];
var k=0;
对于(i=0;i
这应该行得通
var numberCollection = [];
for(var i = 0, j = x.length; i < j; i++){
if (x[i] !== null) {numberCollection.push(x[i])}
}
var numberCollection=[];
对于(变量i=0,j=x.length;i
这应该行得通
var numberCollection = [];
for(var i = 0, j = x.length; i < j; i++){
if (x[i] !== null) {numberCollection.push(x[i])}
}
var numberCollection=[];
对于(变量i=0,j=x.length;i
比我快了34秒。@ScottCorbett——这一个有效。你的工作也是。我知道我的错误在哪里。谢谢你指出了正确的方向:-)只是好奇,为什么要用!==
而不是!=
?在这种情况下,类型比较似乎是不必要的…@MattBrowne。这里的链接可能有更好的解释。谢谢。比我快34秒。@ScottCorbett——这一个也有用。。我知道我的错误在哪里了。谢谢你指出了正确的方向:-)只是好奇,为什么==代码>而不仅仅是=代码>?在这种情况下,类型比较似乎是不必要的…@MattBrowne。这里的链接可能有更好的解释。谢谢