我有一个像这样的列表作为输入:
{value: 1, rest: {value: 2, rest: null}}
我想在列表中添加一个元素并将其放置以便输出:
{value: 1, rest: {value: 2, rest: {value 3, rest:null}}}
我设法使用以下函数在开头添加元素,但是如何在结尾处添加元素呢?感谢。
function prepend(elem, list){
list = {value:elem, rest:list};
return list;
}
console.log(prepend(3, {value: 1, rest: {value: 2, rest: null}}));
输出为:{value: 3, rest: {value: 1, rest: {value 2, rest:null}}}
答案 0 :(得分:1)
你可以在这里使用for
循环,当我是最后一个对象或休息时null
添加新对象和中断循环。
var obj = {value: 1, rest: {value: 2, rest: null}}
function add(elem, list) {
for (var i = obj; i; i = i.rest) {
if (i.rest == null) {
i.rest = { value: elem,rest: null}
break;
}
}
}
add(3, obj)
console.log(obj)

答案 1 :(得分:0)
function append(list, item){
if(list.rest == null)
list.rest = item;
else
append(list.rest, item)
}
答案 2 :(得分:0)
你可以做的是使用一个对象数组并在数组中使用append()
答案 3 :(得分:0)
您可以遍历rest
个对象,然后将新对象分配到最后一个。
function prepend(elem, list) {
var object = list;
while (object.rest) {
object = object.rest;
}
object.rest = { value: elem, rest: null };
return list;
}
console.log(prepend(3, { value: 1, rest: { value: 2, rest: null } }));
答案 4 :(得分:0)
尝试使用this之类的内容:
var obj = {value: 1, rest: {value: 2, rest: null}};
function addRest(val) {
var current = obj;
while(current.rest) {
current = current.rest;
}
current.rest = { value: val, rest: null };
}
addRest(3);
console.log(JSON.stringify(obj));
//{"value":1,"rest":{"value":2,"rest":{"value":3,"rest":null}}}
答案 5 :(得分:0)
以下代码打印您想要的输出:
'use strict';
var obj = {
value: 1,
rest: {
value: 2,
rest: null
}
};
function append(elem, obj) {
var iteratedObj = obj;
while (iteratedObj.rest !== null) {
iteratedObj = iteratedObj.rest;
}
iteratedObj.rest = elem;
}
var toBeAppended = {
value: 3,
rest: null
};
append(toBeAppended, obj);
console.log(obj);
答案 6 :(得分:0)
以下内容适用于您所描述的特定情况
function prepend(elem, list){
for (var el in list) {
el === 'rest' && list[el] === null ? list[el] = {value: elem, rest:null};
}
return list;
}
答案 7 :(得分:0)
试试这个。 我做了一个递归函数。
{{1}}
此功能可用于所有情况。
答案 8 :(得分:0)
试试这个:
function append(subHierarchy,hierarchy){
var node=hierarchy;
while(node.rest){
node=node.rest
}
node.rest=subHierarchy;
return hierarchy;
}
var result = append({value:4},{value:1,rest:{value:2,rest:{value:3}}});
console.log(result);
答案 9 :(得分:-1)
简单如下。
var elem = { ..... };
var obj = { ......... };
var rest = obj;
while(rest){
rest = rest.rest;
}
rest = elem;