需求好像是:

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标准(复习)--3 二列和三列布局

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

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

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

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

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

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

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

  7. [html]三列居中自动伸缩的结构

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

  8. CSS三列布局

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

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

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

随机推荐

  1. cf C. Magic Formulas

    http://codeforces.com/contest/424/problem/C #include <cstdio> #include <cstring> #includ ...

  2. LeetCode_Path Sum II

    Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given su ...

  3. key转成pvf

    https://www.godaddy.com/help/converting-an-exported-pfx-code-signing-file-to-pvk-and-spc-files-using ...

  4. android map高德地图显示多个点,并且每个marker点可以响应鼠标点击事件,处理跳转页面

    定义一个数组,然后将要显示的markers放进数组里面,让后循环每个marke对象,赋予监听事件,在监听事件里面写其它需要的功能: js举例: var arr = new Arry(); var ma ...

  5. UI设计(流程/界面)设计规范

    1.UI设计基本概念与流程 1.1 目的 规范公司UI设计流程,使UI设计师参与到产品设计整个环节中来,对产品的易用性进行全流程负责,使UI设计的流程规范化,保证UI设计流程的可操作性. 1.2范围  ...

  6. linux中的文件结构

    linux下的文件结构,看看每个文件夹都是干吗用的 /bin 二进制可执行命令 /dev 设备特殊文件 /etc 系统管理和配置文件 /etc/rc.d 启动的配置文件和脚本 /home 用户主目录的 ...

  7. Android 开发笔记-Eclipse中文乱码

    使用eclipse时经常中文乱码网上搜罗了下解决办法:   使用Eclipse编辑文件经常出现中文乱码或者文件中有中文不能保存的问题,Eclipse提供了灵活的设置文件编码格式的选项,我们可以通过设置 ...

  8. ios 以NSObject为父类的各类间继承关系

  9. Eclipse中使用正则屏蔽Logcat中的某些Tag

    在使用Eclipse进行Android真机调试的时候经常会出现满屏幕的LogCat,即使设定了根据程序分类也不行 经常会有 Dalvikvm InputMethod这样的Tag出现 给自己的应用设定T ...

  10. CSS基础知识笔记(四)

    元素分类 标签元素大体被分为三种不同的类型:块状元素.内联元素(又叫行内元素)和内联块状元素. 常用的块状元素有: <div>.<p>.<h1>...<h6& ...