将一个数组中2数之和等于某值的元素删除(JS)

 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> New Document </title>
<meta name="Generator" content="EditPlus">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
</head>

<body>
 <script language="JavaScript">
 <!--

  // arr:输入数组,num:2个数的和
  function test(ar,num) {
   var arr = eval(ar);
   var compareNum = arr[0];
   // 保存2数之和等于num的组合。
   var numArr = new Array();
   var flag = false;

   for (var i=0;i<=arr.length-1;i++ )
   {
    compareNum = arr[i];

    for (var j=i+1;j<=arr.length ; j++)
    {
     flag = false; 
     if (compareNum + arr[j] == num)
     {
      // 确保compareNum没有在之前已经出现过
      for (var k=0;k<numArr.length ;k++ )
      {
       if (numArr[k] == i || arr[k] == compareNum)
       {
        flag = true;
       }
      }

      if (!flag) // 将需要删除的元素的下标放入数组
      {
       numArr.push(i); 
       numArr.push(j); 
       break;
      }
      
     }
    }
   }

   // 将需要删除的元素用'a'代替
   for (var k=0;k<numArr.length ;k++ )
   {
    arr.splice(numArr[k],1,'a');
   }

   // 存放最终的元素
   var resultArr = new Array();

   for (var i=0;i<arr.length ;i++ )
   {
    if (arr[i] != 'a')
    {
     resultArr.push(arr[i]); 
    }
   }

   alert(resultArr);
  }

 //-->
 </script>

 <h5>实现:将一个数组中2数之和等于某值的元素删除。</h5><br>
 <input type='text' value='[1,12,2,2,12,14,14,5,9,0,3,11,11]' style="width:300px;" id='arr'>
 <input type='text' value='14' id='num'>
 <input type='button' value='计算' οnclick='test(document.getElementById("arr").value,document.getElementById("num").value)'><br>
</body>
</html>


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值