如何使用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()方法