Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.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_Math - Fatal编程技术网

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);