如何使用javascript linkedlist实现单索引数组
我有一个这样的数组如何使用javascript linkedlist实现单索引数组,javascript,arrays,Javascript,Arrays,我有一个这样的数组 var arrays = [ { "value": "$6" }, { "value": "$12" }, { "value": "$25" }, { "value": "$25" }, { "value": "$18" }, { "value": "$22" }, { "value": "$10" } ]; 我需要将这些数组实现为单个索引数组,如下面的数
var arrays = [
{
"value": "$6"
},
{
"value": "$12"
},
{
"value": "$25"
},
{
"value": "$25"
},
{
"value": "$18"
},
{
"value": "$22"
},
{
"value": "$10"
}
];
我需要将这些数组实现为单个索引数组,如下面的数组
[{
"value": "$6",
"Next": {
"value": "$12",
"Next": {
"value": "$25",
"Next": {
"value": "$25",
"Next": {
"value": "$28",
"Next": {
"value": "$22",
"Next": {
"value": "$10"
}
}
}
}
}
}
}]
如何使用javascript linkedlist实现第二个数组推送到第一个数组,如上面的数组。它将以相反的方向迭代数组,并保持以前的值,将其附加到当前值,然后返回输出 试试这个
function parseData(input){
var output = [];
var len = input.length;
var previous = {};
for(var i =len-1 ; i >= 0; i--){
var temp = {};
temp["value"] = input[i].value;
if(i !== len){
temp["Next"] = previous;
}
previous = temp;
}
output.push(previous);
return output;
}
它将以相反的方向迭代数组,并保持先前的值,将其追加到当前值中,然后返回输出 试试这个
function parseData(input){
var output = [];
var len = input.length;
var previous = {};
for(var i =len-1 ; i >= 0; i--){
var temp = {};
temp["value"] = input[i].value;
if(i !== len){
temp["Next"] = previous;
}
previous = temp;
}
output.push(previous);
return output;
}
试试这个
let result=[];
for(let i=0; i<arrays.length; i++){
result.push(
{"value":arrays[i]["value"], "next":arrays[i+1]}
)}
let result=[];
对于(让i=0;i试试这个
let result=[];
for(let i=0; i<arrays.length; i++){
result.push(
{"value":arrays[i]["value"], "next":arrays[i+1]}
)}
let result=[];
对于(让i=0;i使用array#reduce
方法将数组转换为链表,其中每次迭代构造对象/节点
,并将下一次
引用传递给下一次迭代。当我们需要遍历链表时,我们需要保留根/头
对象的引用
var数组=[{
“价值”:“$6”
},
{
“价值”:“$12”
},
{
“价值”:“$25”
},
{
“价值”:“$25”
},
{
“价值”:“$18”
},
{
“价值”:“$22”
},
{
“价值”:“$10”
}
];
var root={};
arrays.reduce((acc,{value})=>{
acc.next={value};
返回acc.next;
},根);
var result=[root.next];
console.log(result)
使用array#reduce
方法将数组转换为链表,其中每次迭代构造对象/节点
,并将下一次
引用传递给下一次迭代。当我们需要遍历链表时,我们需要保留根/头
对象的引用
var数组=[{
“价值”:“$6”
},
{
“价值”:“$12”
},
{
“价值”:“$25”
},
{
“价值”:“$25”
},
{
“价值”:“$18”
},
{
“价值”:“$22”
},
{
“价值”:“$10”
}
];
var root={};
arrays.reduce((acc,{value})=>{
acc.next={value};
返回acc.next;
},根);
var result=[root.next];
console.log(result);
注意,在这两种情况下,您都只有一个数组。第二个数组只有一个元素。看起来您想要的是一个链表对象,而该对象没有push()
method注意:在这两种情况下,您都只有一个数组。第二个数组只有一个元素。看起来您想要的是一个链表对象,而您不会使用push()
,因为对象没有push()方法