关于json 数组 对象 类数组对象 去重 对象属性名不重复

定义

JSON是一种数据格式(对象和数组互相嵌套)
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。

在 JS 语言中,一切都是对象。因此,任何支持的类型都可以通过 JSON 来表示,例如字符串、数字、对象、数组等。但是对象和数组是比较特殊且常用的两种类型。

对象:对象在 JS 中是使用花括号包裹 {} 起来的内容,数据结构为 {key1:value1, key2:value2, ...} 的键值对结构。在面向对象的语言中,key 为对象的属性,value 为对应的值。键名可以使用整数和字符串来表示。值的类型可以是任意类型。

数组:数组在 JS 中是方括号 [] 包裹起来的内容,数据结构为 ["java", "javascript", "vb", ...] 的索引结构。在 JS 中,数组是一种比较特殊的数据类型,它也可以像对象那样使用键值对,但还是索引使用得多。同样,值的类型可以是任意类型。

数组 对象 类数组对象

https://www.cnblogs.com/xjser/p/4962821.html

数组

索引 元素值
拥有length属性
元素值可以是任何数据类型

对象 key value

js中对象类型为一组无序的由键->值组成的数据集合,其元素的键名和值都可以自定义
元素值可以是任何数据类型
对象自身所拥有的(不包括继承来的)任何属性都是有用户自定义的

类数组模型 不是数组 不能用数组的方法

可以把数组的索引值看成的元素的键名,元素看成是值,可以给显式的给对象定义length属性,使用对象来模拟数组

定义:类数组对象:只包含使用从零开始,且自然递增的整数做键名,并且定义了length表示元素个数的对象,我们就认为他是类数组对象!

特例 :利用对象属性名不能重复的特点,实现数组去重

此时需要将数组的元素值赋到空对象obj中,判断不存在 写入(不输出 算多余?),存在则运用数组方法splice 裁剪 并j-- 后置是因为先裁剪该位置 然后后面的数据填充该位置索引 故裁剪操作发生,需要重新判断、

示例代码
<script>
     function distinct(arr) {
                //空对象
                var obj = {};
                //遍历
               for(var i = 0; i < arr.length; i++) {
                         if(obj[arr[i]] === undefined) {
                                     obj[arr[i]] = 1;//随便贴一个不为空的值 
                           }else{
                                    arr.splice(i--, 1);
                           }
                }
                return arr;
      }
</script>

去重遍历不能 for in key
提示: for in 索引取的 也可以得到元素值 for of 本身得不到索引 indexof 方法可以

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容