验证abc三列数字符合我的小弟要求

时间:2022-12-21 22:07:33

需求好像是:

1.第一列数据有重复的找出来,并且找出它的重复位置

2.第三列根据第一列得出的位置,取出相应位置的数据进行相加

3.相加的结果 是否等同于第二列的对应位置数据

<!DOCTYPE html>
<html>
<head>
<meta charset="utf8" />
<title>验证abc三列数字符合我的小弟要求(第二版本)</title>
<script type="text/javascript"> var a_list = [1,1,2,2,3];
var b_list = [10,10,5,5,1];
var c_list = [5,5,2,3,1];
function abc_equal(a_list, b_list, c_list){
var bb_equal_flag = true;
function a_list_fnc(a_list) {
var repeat_list = [];
for(var i=0,i_l = a_list.length; i< i_l; i++){
var a_num = a_list[i];
var break_flag = false;
// 之前有没找过同样的数据
for(var re_x=0; re_x<repeat_list.length; re_x++){
if(a_num == repeat_list[re_x].num){
break_flag = true;;
} } var repeat_obj = {};
repeat_obj.num = "";
repeat_obj.pos = []; // 找出重复的位置
for(var j=0; j< i_l; j++ ){ // 如果有同样的数据
if(a_num == a_list[j]){ if(repeat_obj.num == a_num){
repeat_obj.pos.push(j);
}
else{
repeat_obj.num = a_num;
repeat_obj.pos.push(j);
} }
}
if(!break_flag){
repeat_list.push(repeat_obj);
} } return repeat_list;
} function b_list_fnc(repeat_list,b_list){
var b_list_compute = []; for(var i=0,l=repeat_list.length; i < l; i++){
var b_obj = {}; b_obj.b_key = repeat_list[i].num;
b_obj.b_value = b_list[repeat_list[i].pos[0]]; // 判断b列的指定行数字是否相等
for(var j=0; j< repeat_list[i].pos.length; j++){
if(b_obj.b_value != b_list[repeat_list[i].pos[j]]){
bb_equal_flag = false;
console.log("不通过的原因:b列的第"+repeat_list[i].pos[j]+"行数字有问题!");
}
} b_list_compute.push(b_obj); }
return b_list_compute;
} function c_list_fnc(repeat_list,c_list){
var c_list_compute = []; for(var i=0,l=repeat_list.length; i < l; i++){
var c_obj = {}; c_obj.c_key = repeat_list[i].num;
c_obj.c_value = 0;
for(var j=0; j< repeat_list[i].pos.length; j++){
c_obj.c_value = c_obj.c_value + c_list[repeat_list[i].pos[j]];
} c_list_compute.push(c_obj);
} return c_list_compute; } function b_c_equal(b_list_end, c_list_end){
var bc_equal_flag = true;
for(var i=0; i< b_list_end.length; i++){
var b_key = b_list_end[i]["b_key"];
var b_value = b_list_end[i]["b_value"]; for(var j=0; j< c_list_end.length; j++){
if(b_key == c_list_end[i]["c_key"]){
if(b_value == c_list_end[i]["c_value"]){
break;
}
else{
bc_equal_flag = false;
console.log("不通过的原因:c列的"+b_key + "对应数字有问题!");
break;
}
}
}
}
return bc_equal_flag;
} function total_result(b_list_end, c_list_end){
if(!bb_equal_flag){
console.log("验证不通过,原因是b列的数字不对应");
return;
}
if(!b_c_equal(b_list_end, c_list_end)){
console.log("验证不通过,原因是b列和c列的值不对应");
return;
} console.log("恭喜你,验证通过!");
}
var a_list_end = a_list_fnc(a_list);
var b_list_end = b_list_fnc(a_list_end,b_list);
var c_list_end = c_list_fnc(a_list_end,c_list); console.log(a_list_end)
console.log(b_list_end)
console.log(c_list_end)
console.log(b_c_equal(b_list_end, c_list_end)) total_result(b_list_end, c_list_end); }
abc_equal(a_list, b_list, c_list ); </script>
</head>
<body> </body>
</html>

验证abc三列数字符合我的小弟要求的更多相关文章

  1. js验证连续两位数字递增或递减和连续三位数字相同

    <!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8" ...

  2. 三列等高 css实现

    实现这个三列等高 布局需要最外层的一个div wrap容器 里面有三个div容器 这个最外层div 需要移除隐藏 overflow:hidden;  关键点就是三列div 同时margin-botto ...

  3. web标准&lpar;复习&rpar;--3 二列和三列布局

    今天学习二列和三列布局,将涉及到以下内容和知识点 二列自适应宽度 二列固定宽度 二列固定宽度居中 xhtml的块级元素(div)和内联元素(span) float属性 三列自适应宽度 三列固定宽度 三 ...

  4. Web标准:三、二列和三列布局

    知识点: 1.二列自适应宽度 2.二列固定宽度 3.二列固定宽度居中 4.xhtml的块级元素(div)和内联元素(span) 5.float属性 6.三列自适应宽度 7.三列固定宽度 8.三列固定宽 ...

  5. CF 给你三个数字L&comma; R&comma; K,问在&lbrack;L&comma; R&rsqb;范围内有多少个数字满足它每一位不同数字不超过k个,求出它们的和(数位DP)

    题意: 给你三个数字L, R, K,问在[L, R]范围内有多少个数字满足它每一位不同数字不超过k个,求出它们的和 分析:考虑用状态压缩 , 10给位0~9 , 如果之前出现过了某个数字x ,那就拿当 ...

  6. CSS3中flexbox如何实现水平垂直居中和三列等高布局

    最近这些天都在弥补css以及css3的基础知识,在打开网页的时候,发现了火狐默认首页上有这样一个东西.

  7. &lbrack;html&rsqb;三列居中自动伸缩的结构

    html三列居中自动伸缩的结构 <div style="width:100%;height:80px;border:1px solid #DDD;margin-bottom:10px; ...

  8. CSS三列布局

    × 目录 两侧定宽中间自适应 两列定宽一侧自适应 中间定宽两侧自适应一侧定宽两列自适应三列自适应总结 前面的话 前面已经介绍过单列定宽单列自适应和两列自适应的两列布局.本文介绍三列布局,分为两侧定宽中 ...

  9. CSS两列及三列自适应布局方法整理

    布局 自适应 两列 三列 在传统方法的基础上加入了Flex布局并阐述各方法的优缺点,希望对大家有所帮助.先上目录: 两列布局:左侧定宽,右侧自适应 方法一:利用float和负外边距 方法二:利用外边距 ...

随机推荐

  1. GPS 气压计高度测量

    气压计测某个点的高度是不准的,因为天气.温度等原因会导致不同时刻同一地点气压不同,所以气压计测量不准.但气压计测量相对高度是很准的.GPS测相对高度不准,但测定点高度比较准.

  2. svn使用svnsync实现双机热备

    前提条件: 主:10.11.100.205从:10.11.100.50 源目录:http://10.11.100.205/svn/rep-ops目标目录:http://10.11.100.50/svn ...

  3. 4560 NOIP2015 D2T2 子串

    4560 NOIP2015 D2T2 子串  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解  查看运行结果     题目描述 Description 有两 ...

  4. &lbrack;转&rsqb;笔记本Ubuntu系统关闭独显&plus;省电降温设置

    [转载者按]最近装了Ubuntu 13.04 64 bits版操作系统玩玩,但是发现两个显卡都开着,所以上网查找资料,以在不需要3D的时候关闭Nvidia显卡.通过Bumblebee软件包可以达到这一 ...

  5. 腾讯云安装openvz,高速搭建測试环境

    CSDN送了腾讯云的測试资格,准备拿来作为cici的软件公布首页,想在上面做个demo,无奈没有设备环境,于是想要用openvz来虚拟一些vps: 第一步:选择腾讯云的os模板,centos6.3 第 ...

  6. android开发中应该注意的问题

    1. Activity可继承自BaseActivity,便于统一风格与处理公共事件,构建对话框统一构建器的建立,万一需要整体变动,一处修改到处有效.   2. 数据库表段字段常量和SQL逻辑分离,更清 ...

  7. 多态以及 LeetCode 每日一题

    1 多态 1.1 多态性 Java 引用变量有两个类型:一个是编译时类型,一个是运行时类型.前者是代码中声明这个变量时的类型,后者是由实际对象的类型决定的.当编译类型和运行类型不一样时,产生多态. c ...

  8. spring cloud 使用spring cloud bus自动刷新配置

    Spring Cloud Bus提供了批量刷新配置的机制,它使用轻量级的消息代理(例如RabbitMQ.Kafka等)连接分布式系统的节点,这样就可以通过Spring Cloud Bus广播配置的变化 ...

  9. oracle远程连接

    1.1.1    修改文件: 1.1.2    修改net Manager(可省略) 1.1.3    修改任何都需要重启oracle监听和启动服务

  10. java&period;util&period;Collection源码分析和深度讲解

    写在开头 java.util.Collection 作为Java开发最常用的接口之一,我们经常使用,今天我带大家一起研究一下Collection接口,希望对大家以后的编程以及系统设计能有所帮助,本文所 ...