Javascript 编写sum_pairs函数的更简单方法
我希望有人告诉我一种更简单的方法来编写我的Javascript 编写sum_pairs函数的更简单方法,javascript,Javascript,我希望有人告诉我一种更简单的方法来编写我的sum\u对(arr,sum)函数,它返回arr中的前两个值,这两个值相加形成sum。我的代码工作,但我认为它是复杂的,我需要有人来简化它。这是我的代码 function sum_pairs(ints,s){ let arr=[]; let arrOfIndex=[]; for(let i=0;i<ints.length;i++){ for(let a=0;a<ints.length;a++){ if(a!=i){ i
sum\u对(arr,sum)
函数,它返回arr
中的前两个值,这两个值相加形成sum
。我的代码工作,但我认为它是复杂的,我需要有人来简化它。这是我的代码
function sum_pairs(ints,s){
let arr=[];
let arrOfIndex=[];
for(let i=0;i<ints.length;i++){
for(let a=0;a<ints.length;a++){
if(a!=i){
if(ints[i]+ints[a]==s){
let newArr=[ints[i],ints[a]];
let sumIndex=i+a;
arr.push(newArr);
arrOfIndex.push(sumIndex);
}
}
}
}
let sortedArray=arrOfIndex.sort((a,b)=>a-b);
return arr[arrOfIndex.indexOf(sortedArray[0])];
}
函数和对(int,s){
设arr=[];
设arrOfIndex=[];
对于(设i=0;i),您可以对第二对元素使用一个带有哈希表的循环
它通过查找实际值来工作,如果找到,则该值是一对的一部分。在本例中,返回总和、值和值的增量
如果找不到,则向哈希表中添加一个新条目,其中包含用于获取和的缺少的值
继续,直到找到或结束
函数和对(int,s){
var hash=Object.create(null),
我
价值
对于(i=0;i log(sum_对([7,2,5,8,4,3,7));
您可以使用以下代码
function sum_pairs(ints, s) {
let results = [];
for (let i=0; i<ints.length; i++) {
for (let j=i+1; j<ints.length; j++) {
if (ints[j] === s - ints[i]) {
results.push([ints[i], ints[j]])
}
}
}
return results;
}
函数和对(int,s){
让结果=[];
对于(设i=0;i步数
遍历数组
通过使用以下等式求n的组成(n是每个迭代中的数字)n\u composition=sum-n
在数组中搜索n_组合
如果找到,则返回[n,n_comp]。如果没有找到,则继续循环。如果根本没有找到,则返回null
设n=0;
设n_comp=0;
让sum_对=(arr,sum)=>{
for(设i=0,len=arr.length;i console.log(sum_pairs([7,2,5,8,4,3],7))/[2,5]
此代码将只写入一对元素,其总和等于所需值和列表中的所有对。@onkar.v,右,另一对可能是[4,3]
。明白了,非常感谢。该函数只返回构成总和的第一对。是否需要所有对?如果需要,是否有重复的数字?非常感谢您的帮助我非常感谢您的努力,但该函数的编写目的是只返回构成总和的前两个值。我已对其进行了更新并修改以返回single结果。我在上面提到,我只需要第一对,我的代码只返回1对。
function sum_pairs(ints, s) {
let results = [];
for (let i=0; i<ints.length; i++) {
for (let j=i+1; j<ints.length; j++) {
if (ints[j] === s - ints[i]) {
results.push([ints[i], ints[j]])
return results;
}
}
}
}