验证abc三列数字符合我的小弟要求
需求好像是:
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三列数字符合我的小弟要求的更多相关文章
- js验证连续两位数字递增或递减和连续三位数字相同
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8" ...
- 三列等高 css实现
实现这个三列等高 布局需要最外层的一个div wrap容器 里面有三个div容器 这个最外层div 需要移除隐藏 overflow:hidden; 关键点就是三列div 同时margin-botto ...
- web标准(复习)--3 二列和三列布局
今天学习二列和三列布局,将涉及到以下内容和知识点 二列自适应宽度 二列固定宽度 二列固定宽度居中 xhtml的块级元素(div)和内联元素(span) float属性 三列自适应宽度 三列固定宽度 三 ...
- Web标准:三、二列和三列布局
知识点: 1.二列自适应宽度 2.二列固定宽度 3.二列固定宽度居中 4.xhtml的块级元素(div)和内联元素(span) 5.float属性 6.三列自适应宽度 7.三列固定宽度 8.三列固定宽 ...
- CF 给你三个数字L, R, K,问在[L, R]范围内有多少个数字满足它每一位不同数字不超过k个,求出它们的和(数位DP)
题意: 给你三个数字L, R, K,问在[L, R]范围内有多少个数字满足它每一位不同数字不超过k个,求出它们的和 分析:考虑用状态压缩 , 10给位0~9 , 如果之前出现过了某个数字x ,那就拿当 ...
- CSS3中flexbox如何实现水平垂直居中和三列等高布局
最近这些天都在弥补css以及css3的基础知识,在打开网页的时候,发现了火狐默认首页上有这样一个东西.
- [html]三列居中自动伸缩的结构
html三列居中自动伸缩的结构 <div style="width:100%;height:80px;border:1px solid #DDD;margin-bottom:10px; ...
- CSS三列布局
× 目录 两侧定宽中间自适应 两列定宽一侧自适应 中间定宽两侧自适应一侧定宽两列自适应三列自适应总结 前面的话 前面已经介绍过单列定宽单列自适应和两列自适应的两列布局.本文介绍三列布局,分为两侧定宽中 ...
- CSS两列及三列自适应布局方法整理
布局 自适应 两列 三列 在传统方法的基础上加入了Flex布局并阐述各方法的优缺点,希望对大家有所帮助.先上目录: 两列布局:左侧定宽,右侧自适应 方法一:利用float和负外边距 方法二:利用外边距 ...
随机推荐
- OpenSSl 加密解密 示例(终于有编程实践了)
OPenSSl的加密主要有三个重要的函数.看懂下面的代码就基本上知道该如何使用openssL来加密了. 不过注意,要先将libssl.so.1.0和libcrypto.so.1.0文件复制到执行的文件 ...
- MySQL加锁分析
参考:MySQL 加锁处理分析.该文已经讲的很详尽了,也易懂,下面仅仅是个人做的总结. 一. 背景 1.1 隔离级别 1.2 加锁过程 逐条处理,逐条加锁. 1.3 两阶段锁2PL 1.4 gap锁 ...
- Prime Palindrome Golf
Prime Palindrome Golf Do you know how to play Prime Palindrome Golf? You are given a number and your ...
- Base64 加密之中文乱码
ase64编码将二进制数据按照每三个字节转换成四个字节可读字符,编码后的字符长度大约为136.1%.字符范围为 A-Z a-z 0-9 \ +.但编码后的字符串不太适合使用URL传输,中文加密 ...
- SICP 练习 1.3
(define (sum a b) (+ a b)) (define (sum-two a b c) ( cond ((and (> (sum a b) (sum a c)) (> (su ...
- MySQL数据备份之mysqldump
mysqldump常用于MySQL数据库逻辑备份 1.各种用法说明 A. 最简单的用法: mysqldump -uroot -pPassword [database name] > [dum ...
- Majority Element II 解答
Question Given an integer array of size n, find all elements that appear more than ⌊ n/3 ⌋ times. Th ...
- 在O(1)时间内删除单链表结点
// 在O(1)时间内删除单链表结点 /* 思考: 很显然链表是一个节点地址不连续的存储结构 删除节点一般很容易会想到是修改p节点的前一个节点的next为p->next 然而除非是双向链表,否则 ...
- html 表单初步学习
<html> <head> <title> 静态页面</title> </head> <body> 这是一个静态页面<br ...
- 对每个用户说hello
#!/bin/bash #对每个用户说hello #用户数 Lines=`wc -l /etc/passwd | cut -d' ' -f1` $Lines`; do echo "Hello ...