如果z
存在,而不添加零,那么如何添加到y
?
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
都存在但我不知道每个y
是否有x
时。
此外,问题可能包括更多不确定大小的数组(不只是x和y,比如t,u,v,w命名的数组可能有也可能没有相同的长度)
如何在不更改循环的情况下循环添加所有数组,创建NaN或添加任何零?
可以内联完成吗?
答案 0 :(得分:0)
您只需要一个if
条件来检查数组的长度是否相等。
if(x.length == y.length) {
var i = x.length;
while(i--)
z[i]=x[i]+y[i];
}
答案 1 :(得分:0)
while (i--) {
z[i] = ((i > y.length - 1)? x[i] : x[i] + y[i]);
}
答案 2 :(得分:0)
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];
}
}
答案 3 :(得分:0)
这效果最好
var y=[];
var x=[1];
var z=(x[0]+(y[0]?y[0]:null)||undefined);
y
没有现有值。 x
具有我们知道存在的值。如果x
不存在,我可以安全地将z
添加到z
并安全地将空值添加到y
。无论出于何种原因,如果一切都变为空,那么我最终会得到z
未定义。