import java.util.*;
public class MaxPairwiseProduct {
static int getMaxPairwiseProduct(int[] numbers) {
TreeSet<Integer> set = new TreeSet(Arrays.asList(numbers));
int max1 = set.pollLast();
int max2 = set.pollLast();
int result = max1 * max2;
return result;
}
public static void main(String[] args) {
int[] numbers = {1, 2, 3};
System.out.println(getMaxPairwiseProduct(numbers));
}
}
我收到了输出:let me={
name:"Shivendra",
age:21
}
let you={
name:"Neha",
age:22
}
let mergeMeAndYou={
...me, ...you
}
console.log(mergeMeAndYou);
现在我没想到这个。任何人都可以解释这个结果吗? &安培;我现在将如何获得合并对象?我使用的是节点版本8.9.4。
答案 0 :(得分:2)
您可以使用{
和}
封闭对象,例如:{...obj}
let me={
name:"Shivendra",
age:21
}
let you={
name:"Neha",
age:22
}
//Putting the me and you on an array.
let mergeMeAndYou = [
{...me},{ ...you}
]
console.log(mergeMeAndYou);
//Putting the me and you on an object.
let mergeMeAndYou2 = {
me:{...me}, you:{ ...you}
}
console.log(mergeMeAndYou2);
注意:根据您希望如何组合对象,您实际上不需要传播对象。你可以:
let mergeMeAndYou = [me,you];
let mergeMeAndYou2 = {me:me, you:you}
答案 1 :(得分:1)
我认为你误解了对象传播的作用。它将每个对象的属性列为新对象。如果使用多个对象执行此操作,则会将对象的属性合并到新对象中。如果多个扩展对象中存在相同的属性,则后一个对象中的属性将获胜。您是否希望将对象附加到新的父结构中?或者你期望看到什么?
如果您希望将对象放入父对象中,请尝试以下方法:
const us = { me, you }
或父数组:
const we = [ me, you ]
答案 2 :(得分:0)
查看结果。 mergeMeAndYou函数用'you'替换'me'对象,mergeYouAndMe函数替换'you'对象我
let me={
name:"Shivendra",
age:21
}
let you={
name:"Neha",
age:22
}
let mergeMeAndYou={
...me, ...you
}
let mergeYouAndMe={
...you, ...me
}
console.log(mergeMeAndYou);
console.log(mergeYouAndMe);
答案 3 :(得分:0)
对象文字中的扩展语法将对象属性复制到新对象上。
来自MDN docs:
ECMAScript提案的Rest / Spread属性(第4阶段)将扩展属性添加到对象文字。它将自己的可枚举属性从提供的对象复制到新对象上。
提供的示例如下:
var obj1 = { foo: 'bar', x: 42 };
var obj2 = { foo: 'baz', y: 13 };
var clonedObj = { ...obj1 };
// Object { foo: "bar", x: 42 }
var mergedObj = { ...obj1, ...obj2 };
// Object { foo: "baz", x: 42, y: 13 }