添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
  1. for 循环
  2. [].slice.call() (calll方法:[].map.call())
  3. ES6语法:Array.from()
  4. ES6语法:展开运算符

原生 js 获取 DOM 元素集合是一个类数组对象,所以不能直接利用数组对象(比如:sort、forEach),需要转换为数组后,才可以使用

下述方法使用 arguments 当伪数组

function fn() {
    var res = toArr(arguments);
    console.log(res);
fn("A", 3, 5); // 返回 [ 'A', 3, 5 ]

1.for 循环

function toArr(cArr) {
    var arr = [];
    for (var i = 0; i < cArr.length; i++) {
        arr.push(cArr[i]);
    return arr;

2.[].slice.call() call() 方法

function toArr(cArr) {
    return [].slice.call(cArr);
  • arr.slice(start, end) :提取索引 start 复制到索引 end 的部分(不包括 end
  • Array.prototype.slice.call(arguments, 0),就是把 arguments 当做当前对象,要调用 argumentsslice 方法,slice(0) 获取所有项(不包含索引)
  • [] 是一个数组对象,会去原型链上找 slice 这个方法,所以可以简写成 [].slice.call()

call() 方法可以搭配的比较广,这里再举个例子:可以用 map 方法,返回遍历的 item 即可

function toArr(cArr) {
    return [].map.call(cArr, (item) => item);

3.ES6语法:Array.from()

只要有 length 属性的对象,都可以用此方法转换成数组

function toArr(cArr) {
    return Array.from(cArr);

4.ES6语法:展开运算符

function toArr(cArr) {
    return [...cArr];
                    总结for 循环[].slice.call() (calll方法:[].map.call())ES6语法:Array.from()4.ES6语法:展开运算符原生 js 获取 DOM 元素集合是一个类数组对象,所以不能直接利用数组对象(比如:sort、forEach),需要转换为数组后,才可以使用下述方法使用 arguments 当伪数组function fn() {    var res = toArr(arguments);    console.log(res);}fn("A"
 //1、将字符串数组形式:split()
 var arr=str.split("")
 console.log(arr)//["a", "b", "c", "d", "e", "f", "g"]
 //2、将数组转成字符串形式:jo
var obj = { name: '小明', age: 22 };
var arr = Object.values(obj) ;  //对象化为数组
console.log(arr);  // ['小明', 22]
字符串化为数组
var str= "abc";
var arr = Object.values(str) ;  /字符串化为数组
console.log(arr);  // ['a', 'b','c']
    console.log(Array.from(arrayLike));
3、Array.prototype.slice
   console.log(Array.prototype.slice.call(arrayLike))
4、Array.apply
 console.log(Array.apply(null, arrayLike))
5、Array.prototype.conca..
				
我们可以使用split()函数将字符串换为数组,如下所示:var text = "1,2,3,4,5";var array = text.split(",");//逗号是分隔符这样array的值就成了数组[1,2,3,4,5]。当我们从后台接受返回值时,有些同学可能以为将值拼成[1,2,3,4,5]就可以在页面上当数组用了,这是不对的。 例如后台传来的值可能是”[1,2,3,4,5]”var a
虽然不太常用,但我们的确可以给对象添加以数字为属性名的属性: 代码如下: var obj = {}; obj[0] = 1; obj[1] = 2; 这个对象并不是数组型,那有没有办法把它换为数组型呢?jQuery代码中采用了Array.prototype.slice把这种对象换为数组,但我试了好几遍,就是不行: 代码如下: var obj = {}; obj[0] = 1; obj[1] = 2; alert(Array.prototype.slice.call(obj)); 上面这段代码在IE下直接报错,在Firefox下虽然没有报错,输出内容却是空。也就说,换失败了。这种
const arr = [1, 2, 3]; const arrStr = JSON.stringify(arr); console.log(arrStr); //输出 ["1","2","3"] 在上面的例子中,我们将数组 `arr` 换成了字符串形式的数组 `arrStr`。注意,换后的字符串形式的数组中的每个元素都是字符串型。如果需要将其还原为原始的数组型,可以使用 `JSON.parse()` 方法进行反序列化。