js的数组中存储object类型数据,想通过indexOf方法获取某个object的数组下标。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js的数组中存储object类型数据,想通过indexOf方法获取某个object的数组下标。相关的知识,希望对你有一定的参考价值。

在百度地图中通过var overlays = [];建立一个覆盖物的数组,然后自定义覆盖物后通过overlays.push(overlay);添加覆盖物object类型。现在想删除其中某个覆盖物,通过splice方法删除,但是需要该覆盖物的数组下标,而用indexOf方法获取不到,页面提示找不到该方法。问下怎么才能找到该覆盖物下标,或者直接能提供移除数组内元素的方法,谢谢大家啦~

你没有实现indexOf的方法吧,存放数组元素为什么不用NSMutableArray呢,可以随便插入删除,这是OC已经实现的东西 参考技术A 用each函数遍历获得

JS引用类型 --- Object

一、对象的基础知识

  • 概念:特指的某一个事物,有特征(属性)和行为(方法),可存储数据。

  • 通俗理解:对象是一组无序键值对的集合,可存储数据。

  • 对象的属性和方法:可以通过 . 的方式添加(这一点也证明了JS是一门动态类型的语言)

  • JS中大多数引用类型的值,都是Object类型的实例

二、对象创建的 3种方式

1. {} 字面量创建对象

<script>
    var obj2 = {};
    obj2.name = ‘zhangxin‘;

    console.log(obj2);
</script>

2. new 构造函数创建对象

  • 构造函数:第一个字母大写(约定);普通函数:第一个字母小写
<script>
    var obj1 = new Object();
    obj1.name = ‘zhangxin‘;

    console.log(obj1);
</script>
  • new 构造函数,new 做了4件事:
    • 创建一个新对象

    • this指向当前创建的新对象

    • 给新对象添加 属性、方法

    • 返回 创建后的新对象

<script>
    function Computer(name, age) {
        this.name = name;
        this.age = age;

        this.say = function () {
            return ‘我是‘ + this.name + ‘;今年‘ + this.age;
        }
    }

    var cp = new Computer(‘电脑‘, 20);
    console.log(cp.say());  // 我是电脑;今年20
</script>
  • new 构造函数 创建数组对象
<script>
    var arr = new Array();

    console.log(arr);  // [] 
</script>

3. Object.create({键值对}) 方法创建新对象; ES5方法,IE8及以下不兼容

<script>
    var o1 = {name: ‘zhangxin‘};
    var create = Object.create(o1);

    console.log(create.name);  // ‘zhangxin‘
</script>

三、对象的的属性 、方法( 赋值、取值 )

方式1: . 的方式添加 / 读取:属性 、方法

方式2: [] 的方式添加 / 读取:属性 、方法(重要)

  • 重要:可添加动态的属性名、动态的方法名

  • 使用 [] 添加属性、方法:若属性名是固定的,需加引号;否则被视为 动态的变量

<script>
    var obj = {};
    
    obj.age = 20;
    obj[‘name‘] = ‘zhangxin‘;
    
    console.log(obj.age);       // 20
    console.log(obj[‘name‘]);   // ‘zhangxin‘
</script>

四、对象循环遍历 for-in

<script>
    var obj = {age: 18, name: ‘ss‘};
    
    for (var key in obj) {
        consloe.log(key);
        console.log(obj[key]);
    }
</script>

五、对象深拷贝 Object.create( )

<script>
    var o1 = {name: ‘zhangxin‘};
    var o2 = Object.create(o1);

    console.log(o2 === o1);  // false
</script>

以上是关于js的数组中存储object类型数据,想通过indexOf方法获取某个object的数组下标。的主要内容,如果未能解决你的问题,请参考以下文章

JS 中如何判断数组

JS引用类型 -- Object类型

JS引用类型 --- Object

js中通过Object.prototype.toString方法----精确判断对象的类型

Object.prototype.toString.call()方法

使用Object.prototype.toString.call()方法精确判断对象的类型