Javascript 获取数组长度, 对象成员个数, 字符串数

article/2025/10/4 9:22:29

1.应用场景

主要用于获取数组长度, 对象成员个数, 字符串数.

2.学习/操作

Q1.Javascript怎么得到数组长度(也就是数组的元素个数)?

Q2.Javascript怎么获取对象的成员个数?

Q1 你肯定想到了array.length!? 那么我们来测试一下下面这个例子.

<script type="text/javascript">

var a = [];

a[50] = 50;

alert(a.length);

</script>

请问数组a有多少个元素, 或者换一句话说, 数组a的长度为多少?

你会告诉我长度为1, 但浏览器会告诉你a.length为51. 有点意思吧?  //其实也好理解, 类比于PHP中的索引数组, 一切根据key的变化而定。

那我们再看一个例子.

<script type="text/javascript">
    var a = [];
    a['age'] = '18';
    a['sex'] = 'Male';
    a['site'] = 'http://www.qSyz.net';
    alert(a.length);
</script>

请问数组a有多少个元素, 或者换一句话说, 数组a的长度为多少?

我们都知道现在数组a的元素个数为3个,但浏览器会告诉你a.length为0 !!

备注:undefinednull,与空位是不同的概念~~

Q2 js怎么获取对象的成员个数? 用length属性吗?

<script type="text/javascript">


var a = {'age':30,'sex':'male'};

alert(a.length);

</script>

以上代码得到结果为undefined!

综上所述,

length不可靠, 要想准确获取js数组元素个数或者对象的成员个数, 我们需要自己动手写一个函数.


备注:

数组

如果不是通过[key]修改的, 而是直接声明初始化赋值/或者使用push, pop修改, 是可以使用的.

如下:

统一解决办法:

自定义函数, 但是有时候可能大材小用[数据类型确定, 就针对一种写解决方法即可]

如果传入数组则计算数组长度,

如果传入对象则计算对象成员数,

如果传入字符串则计算字符串的字数,

其他类型返回false

备注:

字符串与数组的相似性仅此而已。实际上,无法改变字符串之中的单个字符, 

length属性返回字符串的长度,该属性也是无法改变的。 所以可以字符串可以使用length属性来取值

<script type="text/javascript">

//方式一

function count(o){
    var t = typeof o;
    if(t == 'string'){
        return o.length;
    }else if(t == 'object'){
        var n = 0; 
        for(var i in o){
            n++;
        }
        return n;

    }
    return false;
}

// 方式二:

function countTwo(value){
    var type = typeof value;
    if(type == 'string'){
        return value.length;
    }else if(type == 'object'){
        var type = value instanceof Array;  //或者直接通过value.filter来检测判断亦可, 数组有该方法, 对象没有
        if(type){
            return value.filter(function(ele){
                return !!ele || ele == 0;
            }).length;
        }
        return Object.getOwnPropertyNames(value).length;
    }
    return false;
}

</script>

现在在测试一下刚才的例子?

<script type="text/javascript">

var a = [];

a[50] = 50;

alert(count(a));

</script>

得到结果为2

<script type="text/javascript">

        var a = [];

        a['age'] = '18';

        a['sex'] = 'Male';
        a['site'] = 'http://www.qSyz.net';

        alert(count(a));

</script>

得到结果为3.

<script type="text/javascript">
        var a = {'age':30,'sex':'male'};

        alert(count(a));

</script>

得到结果为2

补充

如果是数组, 可以使用

var arr = [0, 1, 50];

var count = arr.filter(function(a) {

                return !!a; //注意判断条件

            }).length;

但是: 因为有个元素为0 , 获取的长度为2, 所以要留心判断条件

后续补充

...

3.问题/补充

TBD

4.参考

https://www.cnblogs.com/sunnywindycloudy/p/7382226.html  //js获取数组长度,对象成员个数、字符串数

后续补充

...


http://chatgpt.dhexx.cn/article/1mUUXdn4.shtml

相关文章

html获取数组最小值,javascript如何获取数组长度?

JavaScript中可以通过length方法来获取字符串的长度。数组的 length 属性总是比数组中定义的最后一个元素的下标大 1。 定义和用法 length 属性可设置或返回数组中元素的数目。 语法arrayObject.length 说明 数组的 length 属性总是比数组中定义的最后一个元素的下标大 1。对于…

JS:数组Array的使用方法及获取数组的长度length

对象分成三种&#xff1a; 内建对象宿主对象自定义对象 数组Array也是一个对象&#xff0c;它和普通的对象功能类似&#xff0c;也是用来存储一些值的。 不同的是普通对象是使用字符串作为属性名的&#xff0c;而数组是使用数字来作为索引操作元素。 数组中的索引是从0开始的…

JavaScript学习1.1

1.注意: 1. JS是区分大小写的&#xff0c;如&#xff1a;classname和ClassName是不一样的。同时注意方法、属性、变量等的大小写吆。 2. JS中的字符、符号等一定要在英文状态下输入吆。 3.var myarrnew Array(); //定义数组 注意&#xff1a; 1.创建的新数组是空数组&#xf…

21 JS数组的基本操作——数组长度

文章目录 1、数组长度1、1 获取数组长度1、2 修改数组长度 2、创建时指定数组长度3、练习&#xff1a;输出数组的长度 1、数组长度 1、1 获取数组长度 数组名.length 1、2 修改数组长度 在利用length属性指定数组长度时&#xff0c;有以下三种情况&#xff1a; &#xff…

mysql中重复数据的查询

准备数据如下:student 表 一、在学生表里,查询name相同且age不同的数据(只需将要比较的字段查询出来,name和age相同的会去重) select a.name,a.age from student a join student b on a.name = b.name and a.age <> b.age group by a.name,a.age;结果如下: 注意…

查询删除MySQL重复数据

查询删除MySQL重复数据 新建表users CREATE TABLE users (user_id int(11) NOT NULL AUTO_INCREMENT,user_name varchar(20) NOT NULL,user_vip int(11) DEFAULT 0,user_vips int(11) DEFAULT 0,user_password varchar(20) DEFAULT NULL,PRIMARY KEY (user_id) ) ENGINEInnoD…

MySQL SELECT COUNT 一对多关联查询去重

文章目录 1 摘要2 问题复现3 解决办法 1 摘要 在实际项目中&#xff0c;通常会遇到多表关联查询的问题&#xff0c;这个时候在做分页查询的时候&#xff0c;可能会出现因关联关系而导致查询数量不正确的问题。如一对多 关系时&#xff0c;统计一 的一方数量&#xff0c;这时使…

Mysql 查询重复数据、去除重复数据操作

表 client 按照 client_id 字段查重&#xff0c;查出 client_id 重复的字段的 id &#xff1a; SELECT c.id from client c where c.client_id in ( SELECT c.client_id #, COUNT(*) from client c group by c.client_id having COUNT(*) > 1 ); 表数据去重操作…

MySQL 查询表中重复数据

查询重复手机号 SELECTuser_mobile FROMt_user GROUP BYuser_mobile HAVINGCOUNT( user_mobile ) > 1; 查询重复的手机号及数量 SELECTuser_mobile,COUNT(*) AS count FROMt_user GROUP BYuser_mobile HAVINGcount > 1; 查询所有重复的手机号的详细信息 SELECT* …

mysql 查询重复数据并删除

表名&#xff1a; articles &#xff0c; 内容重复字段&#xff1a;title&#xff0c; 准备过程&#xff1a; Navicate 数据表导出sql&#xff0c;将导出dsql导入到本地测试库&#xff0c;查看title字段为varchar类型且没有索引&#xff0c;本地库title设置title字段普通索引…

【MySQL】mysql:重复数据查询 sql

目录 一、准备测试表 &#xff08;1&#xff09;创建表 &#xff08;2&#xff09;查询表 &#xff08;3&#xff09;删除表 二、准备测试数据 &#xff08;1&#xff09;插入数据 &#xff08;2&#xff09;查询数据 三、重复数据查询 &#xff08;1&#xff09;查询…

mysql查询重复数据

表全部数据 ------------------- 1 查询people_no重复的记录 select * from people where people_no in (select people_no from people group by people_no having count(people_no) > 1); ---------------------- 2 查询people_no重复的记录 &#xff0c;排除最小id…

mysql 查询数据库重复数据

数据库中有重复数据时,用到哪些sql语句? 建表: CREATE TABLE user (id bigint(255) NOT NULL AUTO_INCREMENT,name varchar(20) COLLATE utf8mb4_general_ci NOT NULL DEFAULT COMMENT 名称,age int(2) NOT NULL DEFAULT 0,PRIMARY KEY (id) ) ENGINEInnoDB AUTO_INCREMENT5…

mysql查询表里的重复数据方法

1 2 3 4 INSERT INTO hk_test(username, passwd) VALUES (qmf1, qmf1),(qmf2, qmf11) delete from hk_test where usernameqmf1 and passwdqmf1 MySQL里查询表里的重复数据记录&#xff1a; 先查看重复的原始数据&#xff1a; 场景一&#xff1a;列出username字段有重读的…

mysql过滤表中重复数据,查询表中相同数据的最新一条数据

先查询表几条demo数据&#xff0c;名字相同&#xff0c;时间不同 select id,name,create_date from sys_user 方法1&#xff1a;最简单,且字段全部相同&#xff0c;排除其他字段不同&#xff1b; 先对表按照时间desc排序&#xff0c;在查询该层使用group by 语句&#xff0…

python matplotlib 在指定的两个点之间连线

为了找到matplotlib在两个点之间连线的方法真是费了好大功夫&#xff0c;最后还是决定用简单的 plt.plot 来解决。如果有好多对点&#xff0c;则可以通过循环实现连接&#xff0c;还可以用 plt.arrow 画箭头&#xff0c;具体可参考这里 import matplotlib.pyplot as pltx [[1,…

1.11.0 pyflink使用例子

官网链接 https://ci.apache.org/projects/flink/flink-docs-release-1.11/dev/table/python/ python版本要求3.5及以上 安装pyflink python -m pip install apache-flink 如果安装下载太慢会time-out , 换pip源 代码 table_api方式 from pyflink.datastream import St…

Pypeline:一种实现Anylogic与Python连接的新工具

Pypeline&#xff1a;一种实现Anylogic与Python连接的新工具 Pypeline背景Pypeline安装方法和环境配置要求Pypeline使用方法 Pypeline背景 Pypeline是由Anylogic官方团队推出的一个功能插件&#xff0c;旨在实现运行中的Anylogic模型和本地安装好的Python的链接。换句话说就是…

Python的连接符

python的连接符主要有 加号&#xff08;&#xff09;、逗号&#xff08;&#xff0c;&#xff09;、空格&#xff08; &#xff09; 、反斜线&#xff08;\&#xff09;、join()的方式、 加号&#xff08;&#xff09; #注意&#xff0c;只能连接字符串&#xff0c;如果一个…

在 Python 中连接列表——如何连接列表

将两个或多个字符串、列表或其他数据结构组合成单个实体的过程在编程中称为串联。 串联产生一个新对象&#xff0c;其中包含原始对象的所有组件&#xff0c;并按串联顺序排列。 字符串上下文中的连接是指将一个字符串连接到另一个字符串的末尾以创建更长的字符串。例如&#xf…