首页/ 填坑/ 文章详情

Javascript 二维数据Array类型与Object类型的优劣

Javascript Array Object 二维数组 发布于 2021-08-14

在表格编辑数据时,需要对二维数据进行添加、修改和删除等系列操作,Javascript 可储存二维数据有两种类型:Array类型与Ojbect类型。说到二维数据,潜意识首先想到二维数组Array类型。一顿操作后,接近收尾工作时,猛然发现二维数组隐藏的坑。

二维数组添加数据:

JSvar arr = [];
arr[10] = [1,2,3];

console.log(arr,arr.length);

//输出的结果
(11) [empty × 10, Array(3)] 11 

二维数组添加下标为10的数据,内存开劈了10个空数据,导致length长度为11,与想要的数组长度相差甚远,理论应该是1。

二维对象添加数据:

JSvar object = {};
object[10] = [1,2,3];

console.log(object,object.length);

//输出的结果
{10: Array(3)} undefined

Object的存储二维数据,最理想,但lenght长度为undefined。不管Array类型或Object类型,想通过lenght获取真实数据长度是不可能的。Javascript由于是弱类型,语法规范并不严谨,利用这点,可以使用for循环获取二维数据的真实长度。

获取二维数据真实长度函数:

JS/**
 * 获取二维数据真实长度函数
 * @method getDataLength
 * @param {Array/Object} data 二维数据
 */
var getDataLength = function (data) {
    var len = 0;
    for(var i in data){
        len++;
    }
    return len;
}

console.log(getDataLength(arr)) //结果:1
console.log(getDataLength(object)) //结果:1

Array类型与Object类型,除了最初声名外,语法与使用基本差不多。在编辑二维数据的情况下,推荐使用Objcet类型,Array类型适合展示已知的数据

文章评论0 records

最新 最早

0

最新评论Latest comments

凡心的仙人凡心的仙人 03-18 14:35
谢谢你了!
rantrismrantrism 2023-04-03 11:27
您好~我是腾讯云开发者社区运营,关注了您分享的技术文章,觉得内容很棒,我们诚挚邀请您加入腾讯云自媒体分享计划。完整福利和申请地址请见:https://cloud.tencent.com/developer/support-plan 作者申
唐牛才是食神唐牛才是食神 2022-06-15 10:51
(*°▽°*)八(*°▽°*)♪,解决了
唐牛才是食神唐牛才是食神 2022-06-15 10:49
发现不得了的东西,今晚回去好好研究下...
胖螺胖螺 2022-02-04 00:58
( ゜- ゜)つロ 在写了在写了。看到也有些感慨。因为站长前年在我原博客的留言,让我毅然选择去深造,选择读研,曾经我想过挺多东西的,还是自己本专业的适合我自己。在这先表达感谢。新年快乐!