【发布时间】:2018-04-09 21:22:46
【问题描述】:
我的任务是编写一个函数,将元素的值与第二个对象中同一位置的值交换。
{placeOne:10,placeTwo:20},{ten:"firstPlace",twenty:"secondPlace"}
{placeOne:"firstPlace",placeTwo:"secondPlace"},{ten:10,twenty:20} // should equal this
我想尝试一种方法,将对象值推送到数组中,然后循环遍历对象并将每个位置设置为数组中的位置。
但是我在同时循环对象和数组时遇到了麻烦,所以我无法以这种方式解决它。
这是我目前所拥有的。
function swapObj(obj1,obj2){
let obj1Arr = [];
let obj2Arr = [];
for(var i in obj1) {
obj1Arr.push(obj1[i]);
}
for(var k in obj2) {
obj2Arr.push(obj2[k])
}
swapObj({placeOne:10,placeTwo:20,placeThree:30,},
{ten:"firstPlace",twenty:"secondPlace",thirty:"thirdPlace"}
)
【问题讨论】:
-
有什么问题?您不是从数组开始的,那么交换是什么意思?您的代码只是将这 2 个对象放入 swapObj 中的 2 个数组中
-
对象中键的顺序是任意的,因此您可以创建
{ten:10,twenty:20},也可以创建{ten:20,twenty:10}(参见:stackoverflow.com/questions/5525795/…) -
@user3080953 看起来问题不是要在对象内交换键,而是要在数组中交换对象本身,尽管它是模棱两可的。
标签: javascript arrays object for-loop