javascript如何将数组赋值为空

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript如何将数组赋值为空相关的知识,希望对你有一定的参考价值。

如何数组赋值为空,如何判断数组为空.
var arr=new Array;
arr=?;
function empty(var array)
if(array==null)alert("is empty");

参考技术A Array未赋值前就是NULL

如arr=new Array();

此时arr就是null
如已赋值可以用
splice
如下:
var arr=new Array(1,2,3,4);
arr.splice(0,arr.length)//删除arr[]中的所有splice方法splice(2,1)删除arr[3]

if(arr[3]==null)alert("为空")//判断是否为空

splice方法的使用:
arrayObj.splice(start, deleteCount, [item1[, item2[, . . . [,itemN]]]])
参数
arrayObj

必选项。一个 Array 对象。

start

必选项。指定从数组中移除元素的开始位置,这个位置是从 0 开始计算的。

deleteCount

必选项。要移除的元素的个数。

item1, item2,. . .,itemN

必选项。要在所移除元素的位置上插入的新元素。本回答被提问者采纳
参考技术B var arr=array(1,2,3,4);
arr=null;
这样就空了

如何在javascript中执行if语句来检查JSON数组是不是为空?

【中文标题】如何在javascript中执行if语句来检查JSON数组是不是为空?【英文标题】:how to do an if statement in javascript to check if a JSON array is empty?如何在javascript中执行if语句来检查JSON数组是否为空? 【发布时间】:2019-03-21 14:49:06 【问题描述】:

我正在尝试来自堆栈溢出的各种答案来编写一个 if 语句,该语句检查 JSON 数组是否已填充或为空。但是,console.log 总是返回 undefined。我使用 node.js 和 webstorm 作为 IDE。我可以得到一些帮助来解决这个问题吗?

function selectData()
    var sql = "SELECT * FROM cust where LastName = '" +registerArray[0]+"'";
    con.query(sql, function (err, result) 
        console.log(JSON.stringify(result)); //correctly displaying stuffs from db
        if (result)  //statement not working correctly.
            var pw = "SELECT ID FROM cust where LastName = '" +registerArray[0]+"'";
            con.query(pw, function (err, result) 
                var idcheck  = JSON.stringify(result);
                console.log(result); //always shows undefined
                if (idcheck !== registerArray[0])
                    return ("re enter correct password");
                 else 
                    return ("login successfully");
                
            );

         else 
            return("sign up first");
        
    );

con.end();

【问题讨论】:

只需执行if (result) 即可检查result 是假值还是真值 您的查询容易受到“sql 注入”攻击。 con.query("SELECT * FROM cust WHERE LastName = ?", [registerArray[0]], function (err, res) ... ) 是你要使用的 console.log(JSON.stringify(result)); 带给你什么? @iArcadia 第二个 console.log(JSON.stringify(result)) 给出未定义 @KunalMukherjee 我应该如何使用它? 【参考方案1】:

问题是您使用严格相等运算符和 con.query 如果它没有找到任何东西,它会返回一个空数组([])。 由于您使用严格比较 ([]) !== 0 解析为 TRUE 这会导致您的问题。

解决方案

您可以将您的声明更改为if (result),或者更清晰更详细的版本,if (result.length > 0 ),这将完成您正在尝试做的事情。

您可以从这篇文章中了解更多关于 JS 如何计算表达式的信息 Truthy and falsy values in javascript

【讨论】:

【参考方案2】:

使用 Object.keys

function selectData()
    var sql = "SELECT * FROM cust where LastName = '" +registerArray[0]+"'";
    con.query(sql, function (err, result) 
        console.log(JSON.stringify(result));
        if (Object.keys(result).length !== 0 ) 

【讨论】:

仍然显示未定义。在我的客户端出现此错误:VM19:1 Uncaught SyntaxError: Unexpected token r in JSON at JSON.parse () at XMLHttpRequest.SendLoginData.xhttp.onreadystatechange 您发布的代码不包含JSON.parse【参考方案3】:

检查未定义和有项目...

if (result !== undefined && Object.keys(result).length !== 0) 
     //you've got an object and it has some stuff 
 else 
     //handle situation where you've got nothing

编辑:显然,您不应该使用 getOwnPropertyNames,因为某些安全框架会阻止它。请改用 Object.keys。

【讨论】:

以上是关于javascript如何将数组赋值为空的主要内容,如果未能解决你的问题,请参考以下文章

ThinkPHP如何清空静态数组?

PLPGSQL 数组赋值不起作用,“赋值中的数组下标不能为空”

JS如何判断一个数组是不是为空、是不是含有某个值

C#怎么 给数组赋空值 判断数组为空

如何快速清除 JavaScript 对象?

JavaScript数组