从数组中分配数据,或者是什么?

时间:2013-05-03 15:52:31

标签: javascript

我遇到过这条线,我不确定它是如何做到的。数据部分是一个json对象,稍后,“myarray”变量用于将新变量分配给数组。

“myItems”对象用于在数据对象中的对象上迭代.map函数。但我不知道如何通过以下代码分配这一切:

var myItems = data || [], myarray;

4 个答案:

答案 0 :(得分:3)

它声明了两个全局变量myItemsmyarray。如果数据未定义,我的项目将被分配数据,如果数据未定义,则会为myItems分配一个空数组。

由于Javascript中变量的虚假或虚假性质,可以在赋值期间使用||运算符。

Javascript中的几个值等于false,例如空字符串""或未定义。其他如String literal!=“”(示例“Test”)和对象将等同于true。当在赋值中使用时,如果第一个表达式等于true,则不会评估进行||的代码部分。

link更好地描述了真实和虚假。

答案 1 :(得分:3)

另一种写这个的方法是:

var myItems;
if (data) {
    myItems = data;
} else {
    myItems = [];
}

var myarray;

答案 2 :(得分:1)

这行代码执行以下操作:

  • 它声明myarraymyItems变量。
  • data || []表示如果计算结果为true(非空),则取data,否则取新的空数组。这是一种提供后备/默认值的javascript助记符。
  • 将上一步的结果分配给myItems

所以,最好写成

var myarray;
var myItems = data || [];

答案 3 :(得分:-1)

在这里,您要定义两个名为datamyarray的变量(请注意逗号)。

此处轻微滥用||(逻辑OR运算符)。声明

var myItems = data || [];

如果data 不是,那么会将myItems的值分配给data。但是,如果 是假的,myItems将被初始化为[]的空数组。由于延迟评估,如果data != false,则不执行该语句的其余部分。