_.isEmpty()显示非空,但显示为空

时间:2016-03-04 05:17:02

标签: javascript jquery meteor underscore.js

我从rateit Meteor包中获得输入。此套餐用于显示和获取用户填写的星级。当我得到尚未填写的评分值(var buyUniq = $(".paymentRate").rateit('value')

值显示为[](没有任何内容)。

typeof buyUniq表明它是一个对象。

使用JS的Boolean()对象包装器,它返回true。

Boolean(buyUniq)

下划线的_.isEmpty()表示该对象不为空(返回false)

_.isEmpty(buyUniq)

为什么对象显示它不是空的

3 个答案:

答案 0 :(得分:1)

转换为布尔值时的对象计算结果为true

试试这个简单的

var a = {};
Boolean(a);//outputs true
  

如何检查对象内是否有任何内容?

只检查对象是否有任何键

Object.keys(a).length > 0; //if returns true then it has something inside it

答案 1 :(得分:1)

> Boolean([]) // empty array
< true
> Boolean({}) // empty object
< true

数组长度:

myArray.length

对象长度:

Object.keys(myObject).length;

答案 2 :(得分:0)

如果找不到选择器的值,

rateit会将值显示为对象。

例如:

var sellUniq = $(".describedRate").rateit('value');
var buyUniq = $(".paymentRate").rateit('value');

$(".describedRate")存在且$(".paymentRate")没有。

sellUniq将是一个数字,buyUniq将是一个非空的对象。