首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我尝试过滤空values.But,TypeError:无法读取属性null的“长度”

我尝试过滤空values.But,TypeError:无法读取属性null的“长度”
EN

Stack Overflow用户
提问于 2017-01-18 15:26:01
回答 2查看 632关注 0票数 0

这是一个arrays.If数组,您可以看到,它们的长度-值是consecutive.But,一个数组丢失了,我试图编写一个方法,返回缺失数组的长度。我的方法可以得到缺失数组的真正长度,但是我得到了一个关于空value.Now的错误消息,我尝试过滤空值。

TypeError:无法读取getLengthOfMissingArray at getLengthOfMissingArray的属性“长度”,at / null /framework/javascript/cw-2.js:179:21 at Promise._execute at Promise._resolveFromExecutor at Promise._resolveFromExecutor at Object.handleError at ContextifyScript.Script.runInThisContext at Object.exports.runInThisContext

代码语言:javascript
复制
function getLengthOfMissingArray(arrayOfArrays) {
  var str=[];
  if (arrayOfArrays=="")
    return 0;
  var Long=arrayOfArrays.length;
  for(var i=0;i<Long;i++){
    if (arrayOfArrays[i]=="")
      return 0;
    else
      str.push(arrayOfArrays[i].length);
  }
  str.sort(function(a,b){return a>b?1:-1});
  var sum=0,n=str.length;
  var totol=((str[0]+str[n-1])/2)*(n+1);
  for(var i=0;i<str.length;i++){
    sum=sum+str[i];
  }
  return totol-sum;
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-18 15:39:57

我没有answer.But你的代码看起来很复杂:

代码语言:javascript
复制
 var mainarray=[]; // your array containing arrays
var left=mainarray.map(typeof el=="object"?el.length:0).sort().reduce((num,length)=>num+1==length?num+1:num,-1)+1;//if your first array length is 1, -1 has to be replaced with 0.

获取每个长度,如果不是数组长度为0,则将其按升序排序并计数。如果有一个地方失踪,保持在这个价值。

示例:http://jsbin.com/ribaxoveyo/edit?console

票数 0
EN

Stack Overflow用户

发布于 2017-01-18 15:31:03

我觉得你应该用!arrayOfArrays代替arrayOfArrays=="",就像这样.

代码语言:javascript
复制
function getLengthOfMissingArray(arrayOfArrays) {
  var str=[];
  if (!arrayOfArrays)
    return 0;
  var Long=arrayOfArrays.length;
  for(var i=0;i<Long;i++){
    if (!arrayOfArrays[i])
      return 0;
    else
      str.push(arrayOfArrays[i].length);
  }
  str.sort(function(a,b){return a>b?1:-1});
  var sum=0,n=str.length;
  var totol=((str[0]+str[n-1])/2)*(n+1);
  for(var i=0;i<str.length;i++){
    sum=sum+str[i];
  }
  return totol-sum;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41723189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档