Javascript 检查数组元素/项是否未定义
只有当Javascript 检查数组元素/项是否未定义,javascript,arrays,math,Javascript,Arrays,Math,只有当y存在而不添加零时,如何添加到z var x=[-1,2,44,6]; var y=[33,2,1]; //a shorter array where y[3] does not exist var z=[]; var i=x.length; while(i--){ z[i]=x[i]+y[i]; } 当我知道所有的x都存在,但我不知道每个x是否都有y时 此外,问题还可能包括更多大小不一的数组(不仅仅是x和y,比如t、u、v、w命名的数组,它们的长度
y
存在而不添加零时,如何添加到z
var x=[-1,2,44,6];
var y=[33,2,1]; //a shorter array where y[3] does not exist
var z=[];
var i=x.length;
while(i--){
z[i]=x[i]+y[i];
}
当我知道所有的x
都存在,但我不知道每个x
是否都有y
时
此外,问题还可能包括更多大小不一的数组(不仅仅是x和y,比如t、u、v、w命名的数组,它们的长度可能相同,也可能不同)
如何在不更改循环、创建NaN或添加任何零的情况下循环添加所有数组
这可以内联完成吗?您只需要一个
if
条件来检查数组的长度是否相等
if(x.length == y.length) {
var i = x.length;
while(i--)
z[i]=x[i]+y[i];
}
这个效果最好
var y=[];
var x=[1];
var z=(x[0]+(y[0]?y[0]:null)||undefined);
y
没有现有值x
有一个我们知道存在的值。如果y
不存在,我可以安全地将x
添加到z
,并安全地将null添加到z
。无论出于何种原因,如果所有内容都变为空,那么我将以未定义的z
结束。如果(x.length==y.length)
?在不更改循环的情况下“意味着什么?你不会修改你的代码?!
var x=[-1,2,44,6];
var y=[33,2,1]; //a shorter array where y[3] does not exist
var z=[];
var i=Math.max(y.length, x.length);
while(i--){
if (typeof y[i] !== 'undefined' && x[i] !== 'undefined') {
z[i]=x[i]+y[i];
}
}
var y=[];
var x=[1];
var z=(x[0]+(y[0]?y[0]:null)||undefined);