将NodeList转化成数组

本文介绍了DOM中ChildNodes属性的使用方法,包括如何通过ChildNodes获取子节点、将其转换为数组形式,以及如何利用ChildNodes实时更新的特点进行DOM操作。

每一个节点都有一个ChildNodes属性,其中保存着一个类数组对象,有length属性,同时可以通过item()或者[]来访问每一项,当然,也可以转化成数组

转化方法

function ConvertToArray(nodes){
    var array=null;
    try{
        array=Array.prototype.slice.call(nodes,0);//非ie浏览器  ie8-将NodeList实现为COM对象,不能用这种方式检测
    }catch(ex){//ie8-
        array=new Array();
        for(var i=0;i<nodes.length;i++){
            array.push(nodes[0]);
        }
    }
return array;
} 

知识点

1、Array.prototype.slice.call()实现类数组到数组的转化

2、DOM中的变化会自动反映在ChildNodes中

3、try-catch可以当做一种检测怪癖(bug)的方式


### 将List转换为数组的方法 在多种编程语言中,将`List`转换为数组是一个常见的需求。以下是几种主流编程语言中的实现方法。 #### JavaJava中,可以使用`List`接口提供的`toArray()`方法将`List`转换为数组。以下是一个示例代码[^1]: ```java import java.util.ArrayList; import java.util.List; public class ListToArray { public static void main(String[] args) { List<Integer> list = new ArrayList<>(); list.add(1); list.add(2); list.add(3); // 使用 toArray() 方法将 List 转换为数组 Integer[] array = list.toArray(new Integer[0]); // 输出数组内容 for (Integer num : array) { System.out.print(num + " "); } } } ``` 上述代码中,`list.toArray(new Integer[0])`是推荐的方式,它确保了返回的数组类型与指定的类型一致。 #### Python 在Python中,可以通过简单的构造函数将`list`转换为`array`。如果需要保持原始顺序,可以直接使用列表解析或`numpy`库[^2]。以下是一个示例: ```python # 使用列表解析 original_list = [1, 2, 3] array = [x for x in original_list] # 如果需要使用 numpy 数组 import numpy as np numpy_array = np.array(original_list) print(array) print(numpy_array) ``` #### JavaScript 在JavaScript中,可以使用`Array.from()`方法将类数组对象(如`arguments`或`NodeList`)转换为真正的数组。此外,`Object.values()`也可以用于从对象中提取值并转换为数组[^4]。以下是一个示例: ```javascript // 示例:将对象的值转换为数组 const obj = { a: 1, b: 2, c: 3 }; const arr = Object.values(obj); // [1, 2, 3] // 示例:将类数组对象转换为数组 const arrayLike = { 0: 'a', 1: 'b', 2: 'c', length: 3 }; const arr2 = Array.from(arrayLike); // ['a', 'b', 'c'] console.log(arr); console.log(arr2); ``` #### Spring Framework中的转换器 在Spring框架中,可以使用`Converter`接口实现自定义的转换逻辑。例如,将字符串转换为整数时,可以使用`StringToInteger`类[^3]。虽然这不是直接将`List`转换为数组的示例,但它展示了如何在更复杂的场景中进行类型转换。 ```java package org.springframework.core.convert.support; final class StringToInteger implements Converter<String, Integer> { public Integer convert(String source) { return Integer.valueOf(source); } } ``` ### 总结 不同编程语言提供了不同的方法来实现`List`到数组的转换。Java中的`toArray()`方法、Python中的列表解析或`numpy`库、JavaScript中的`Array.from()`和`Object.values()`都是常用的技术。根据具体的需求和语言环境选择合适的方法即可。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值