数组对象操作问题

场景:
有两个数组
添加时:
b数组中的{d:1}插入a数组,然后b数组返回[{e:2},{f:3},{g:4}],a数组返回[{a:1},{b:2},{c:3},{{d:1}}]。操作:b.push({d:1}),b.pop({d:1})。
删除时:
a数组删除b数组push过来的对象,b数组push a数组删除的对象。操作:a.pop({d:1}),b.push({d:1})。

var a = [{a:1},{b:2},{c:3}];
var b = [{d:1},{e:2},{f:3},{g:4}]

想要的结果是 b数组push一个对象到a数组,然后b数组再删除这个push出去的对象,同时a数组删除一个对象时b数组push进a数组删除的对象。不知道描述清楚没有,我这样操作得不到想要的结果。。。

阅读 3.1k
3 个回答
var a = [{a:1},{b:2},{c:3}];
var b = [{d:1},{e:2},{f:3},{g:4}];
a.push(b.shift()); // a数组最后添加b数组删除第一个元素并返回的值
b.unshift(a.pop()); // b数组最前添加a数组删除最后一个元素并返回的值

首先要明确一点数组删除操作是不带参数的。

var a = [{a:1},{b:2},{c:3}];
a.pop();//PS: pop()和shift() 不接受传参,即使传了参数也没什么卵用~~;
console.log(a);//[{a:1},{b:2}]

你把所有对象写里面,a也是只删除一项。

第二点就是删除操作返回的是删除的那一项而不是删除剩下的。
所以, b数组push第一个对象到a数组,然后b数组再删除这个push出去的对象。就是:

a.push(b.shift()); 

同时a数组删除一个对象时b数组push进a数组删除的对象。就是:

b.unshift(a.pop())

了解Js数组的操作
push()、pop() 是从数组的尾部进行增减,unshift()、shift() 是从数组的头部进行增减。
然后自己尝试

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题