如果它是第一个非空数组,则返回true

亚历克斯

我有一个带有两种数据类型的对象:ArrayString

{
  "livingroom": [
    {
      "app": "",
      "name": "s1",
      "thumbnail": "https://storage.googleapis.com/peterbucket/istagingViewer/sigstaging.com.tw/Cuiti/study/web/thumb_floorplan1.jpg"
    }
  ],
  "study": [
    {
      "app": "",
      "name": "s0",
      "thumbnail": "https://storage.googleapis.com/peterbucket/istagingViewer/sigstaging.com.tw/Cuiti/study/web/thumb_floorplan3.jpg"
    }
  ],
  "outdoor": [],
  "id": "-KF28-_Vdve-u3498eQ1",
  "name": "Cuiti"
}

现在,我正在遍历所有值,并且只想返回第一个非空数组(在这种情况下,是的值livingroom)。

// Template
<div v-for="value in object" v-if="isFirstNonEmptyArray(value, object)">

// JavaScript
isFirstNonEmptyArray (value, object) {
  if (value instanceof Array) {
    if (value.length > 0) {
      // What to do here?
    }
  }
},

但是如您所见,在检查值是否为空后,我被卡住了。接下来我应该写什么?

阿克沙特·马哈詹(Akshat mahajan)

这是一个棘手的问题,因为Javascript对象的属性没有顺序

换句话说,要返回第一个具有空值的此类属性非常困难,因为不能保证遍历对象属性的任何循环都以相同的顺序命中它们因此,true如果该属性是对象中的第一个此类值,则不可能返回,因此您的问题无法按所述解决:)

如果只有一个具有非空长度的属性,那么您可以做的最好的是:

function FirstNonEmptyArray(object) {
    for (var property in object) {
        if (object.hasOwnProperty(property) && (object[property] instanceof Array)) {
            if (object[property].length > 0) {return property;}
       }
}};

如果您有多个具有非空长度的属性,那么不能保证通过对象进行迭代的顺序。这些属性中的任何一个都可以返回。

如果属性名称的长度不为零,则最好将属性名称附加到数组中,然后按以下方式对其进行处理:

 function AllNonEmptyArrays(object) {
    var array = []
    for (var property in object) {
        if (object.hasOwnProperty(property) && (object[property] instanceof Array)) {
            if (object[property].length > 0) {array.push(property);}
       }
    return array;
}};

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Java 8中懒惰地返回第一个非空列表

获取每行的第一个非空值

从数组中删除第一个元素并返回减去第一个元素的数组

SQL-返回前几天的第一个非空值

Javascript数组的第一个结果返回“空”

在def中返回数组的第一个元素

为什么OR如果第一个元素为True,则返回True,但是ANY仍会检查所有元素,即使第一个元素为True

数组的第一个索引返回IndexOutOfRangeException

Select语句返回一个值;如果第一个为空,则返回另一个值

使用合并从2个表中返回第一个非空值

数组元素为空,除了第一个

返回第一个非零值的列名

返回第一个非空/空白值?

返回数组XSLT的第一个非零值

数组中的第一个非负元素

返回数组的第一个元素不是空元素

返回列表中的第一个非NULL值;如果没有非NULL值,则返回NULL

正则表达式忽略第一个字符,如果它是一个$

XSL。仅返回第一个非空元素

数组函数仅返回第一个值

如果它是A 1,请删除第一个数字

如果第一个表达式在 bash 中返回错误,则为数组赋值

找到数组的第一个非重复整数

如何使用 LOOKUP 函数返回第一个非空值

我的数组的第一个元素来自哪里,它是什么?

如何返回数组中的第一个非错误值?

查找分区中的第一个非空

创建一个通用函数,比较第一个参数是否为空,如果返回第二个,则返回默认值,否则返回第一个

如果它是第一个,则覆盖图像标签?