我有以下对象:
var obj = {"last_name": "john", "age": 23, "city": "London"}
我想在此对象的开头添加first_name的新元素,如下所示:
{"first_name": "Samuel", "last_name": "john", "age": 23, "city": "London"}
我知道我可以做obj.first_name = "Samuel"
但是它会在对象的末尾添加新元素。如何在开始时添加它?
答案 0 :(得分:7)
虽然对象实际上(ES5)没有顺序,但您可以使用Object.assign
生成一个新对象,并使用new属性作为对象开始并将给定对象分配给它。新对象具有创建顺序中的属性。
#include<iostream>
using namespace std;
struct node
{
int value;
node *next;
};
node *head;
void addnode(int);
void destroytree();
int main()
{
head=new node;
head=NULL;
int no,ch=1;
while(ch!=0)
{
cout<<"Enter Choice (0 exit, 1 enter): ";
cin>>ch;
if(ch==0) break;
cout<<"Enter no: ";
cin>>no;
addnode(no);
}
cout<<"\nTime to print.\n\n";
destroytree();
cout<<endl;
return 0;
}
void addnode(int no)
{
node *n=new node;
node *trav;
trav=head;
while(trav!=NULL && trav->next!=NULL)
{
trav=trav->next;
}
if(trav==NULL)
{
trav->value=no;
trav->next=NULL;
return;
}
n->value=no;
n->next=NULL;
trav->next=n;
}
void destroytree()
{
node *n;
while(head!=NULL)
{
n=head;
cout<<head->value<<"->NEXT ** ";
head=head->next;
delete n;
}
}
&#13;
答案 1 :(得分:3)
我尝试过,它可以与传播算子一起使用。以下面的方式做
var object = { last_name: "john", age: 23, city: "London" };
var newObject= { first_name: "Samuel" };
object = {...newObject, ...object }
o / p:{first_name:“ Samuel”,last_name:“ john”,年龄:23,城市:“ London”};
答案 2 :(得分:0)
可以与点差运算符一起使用,对订单信心不足
var object = {last_name:“ john”,年龄:23,城市:“ London”};
var newObj = {first_name:“塞缪尔”,...对象}
console.log(newObj);