Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将列表转换为数组_Javascript_Arrays - Fatal编程技术网

Javascript 将列表转换为数组

Javascript 将列表转换为数组,javascript,arrays,Javascript,Arrays,我有一个函数,它以列表作为参数,并且必须将列表中的元素返回到数组中。 例如,在输入的情况下: {value: 1, rest: {value: 2, rest: null}} 输出应如下所示: [1, 2] 这就是我试图解决它的方式: function listToArray(list){ var arr = []; for (var node = list; node; node = node.rest) { arr.unshift(node); }

我有一个函数,它以列表作为参数,并且必须将列表中的元素返回到数组中。 例如,在输入的情况下:

{value: 1, rest: {value: 2, rest: null}}
输出应如下所示:

[1, 2]
这就是我试图解决它的方式:

function listToArray(list){
  var arr = [];
    for (var node = list; node; node = node.rest) {
        arr.unshift(node);

    }
  return arr;

}
console.log(listToArray({value: 1, rest: {value: 2, rest: null}}));
我得到的结果是:

[{value: 2, rest: null}, {
value:  1
rest:   {value: 2, rest: null}
}]

有人知道我应该更改什么才能使其工作吗?

您只是缺少节点中的
.value

函数列表阵列(列表){
var-arr=[];
for(var node=list;node;node=node.rest){
arr.unshift(节点值);
}
返回arr;
}

log(listToArray({value:1,rest:{value:2,rest:null}))
您只是缺少节点中的
.value

函数列表阵列(列表){
var-arr=[];
for(var node=list;node;node=node.rest){
arr.unshift(节点值);
}
返回arr;
}

log(listToArray({value:1,rest:{value:2,rest:null}))可以使用递归获取所有内部对象值

var obj={value:1,rest:{value:2,rest:null};
var list=objToList(obj,‘value’、‘rest’);
控制台日志(列表);
功能对象列表(对象、值字段、目标字段){
返回objtolistiner(obj,valueField,targetField,[]);
}
函数ObjToListiner(对象、值字段、目标字段、列表){
if(对象(obj)){
list.push(obj[valueField]);
ObjToListiner(obj[targetField],valueField,targetField,list)
}
退货清单;
}
功能对象(obj){
返回obj!==null&&typeof obj====object';
}
。作为控制台包装器{
排名:0;
最大高度:100%!重要;

}
您可以使用递归获取所有内部对象值

var obj={value:1,rest:{value:2,rest:null};
var list=objToList(obj,‘value’、‘rest’);
控制台日志(列表);
功能对象列表(对象、值字段、目标字段){
返回objtolistiner(obj,valueField,targetField,[]);
}
函数ObjToListiner(对象、值字段、目标字段、列表){
if(对象(obj)){
list.push(obj[valueField]);
ObjToListiner(obj[targetField],valueField,targetField,list)
}
退货清单;
}
功能对象(obj){
返回obj!==null&&typeof obj====object';
}
。作为控制台包装器{
排名:0;
最大高度:100%!重要;
}
使用
arr.push(节点)而不是
arr.unshift(节点)
将更改元素的顺序,但输出格式仍然不是所需的格式。使用
arr.push(节点)而不是
arr.unshift(节点)
将更改元素的顺序,但输出格式仍然不是所需的格式。