SSR就是一台服务器,可以利用 SSR 在远程的服务器上配置 SSR,使其能够成为 SSR 节点,这样本地电脑或者其它设备利用 SSR 节点实现 VPN 或者远程上网及游戏加速等方面。ShadowsocksR(简称 SSR)是 Shadowsocks 分支,在 Shadowsocks 的基础上增加了一些数据...
一、Visual Studio Code下载地址:https://code.visualstudio.com/微软在2015年4月30日Build 开发者大会上正式宣布了 Visual Studio Code 项目:一个运行于 Mac OS X、Windows和 Linux 之上的,针对于编写现代 Web 和云应用的跨平台源代码编辑器。Visual Stud...
定义个全局变量,用list或者map,然后在循环里面往这个集合里塞
获取服务器传来的数组数据进行,找出其中价格相同的进行数量相加,合并该段数据:
/** 先将传来的订单列表进行四舍五入,再将价格相同的订单进行合并
* @param {Object} orderList :要进行操作的订单
*/
async mergeOrder(orderList) {
console.log(orderList);
let contrast_1 = JSON.parse(JSON.stringify(orderList));
for(let x in contrast_1){
contrast_1[x].trade_price = this.toDecimal(contrast_1[x].trade_price,this.digit_num); //进行四舍五入
}
let contrast_2 = JSON.parse(JSON.stringify(contrast_1)); //再复制一个用来做对比
let containers = []; //存放已经合并后的数据
/* 循环找出相同的值 */
console.log(contrast_1);
for(let i in contrast_1){
console.log(contrast_1[i]);
let container_list = {
trade_num: contrast_1[i].trade_num,
trade_order_id: contrast_1[i].trade_order_id,
trade_price: contrast_1[i].trade_price,
trade_type: contrast_1[i].trade_type
}
for(let m in contrast_2){
if(!contrast_2[m]){
if(m == i){
container_list = null;
break; //如果该值为空值就跳过
}
continue;
}
if(contrast_1[i].trade_price == contrast_2[m].trade_price){
if(m == i){
contrast_2[m] = null;
continue;
}
/* 如果遇到没有合并的相同价格就进行累加 */
container_list = {
trade_num: parseInt(container_list.trade_num) + parseInt(contrast_2[m].trade_num),
trade_order_id: container_list.trade_order_id + '--' + contrast_2[m].trade_order_id,
trade_price: container_list.trade_price,
trade_type: container_list.trade_type
}
contrast_2[m] = null; //销毁该次循环的值,防止多次循环到该值
}
}
console.log(container_list);
if(!container_list){
//如果为空值就直接进行下次循环
continue;
}
/* 将该次循环得到的数据放入容器内 */
containers.push(container_list);
console.log(containers);
}
console.log(containers);
return containers;
}
/**
* @param {number} x: 要进行操作的数字
* @param {number} digit: 要达到的精度,比如小数点后8位,不足补0
*/
toDecimal(x, digit) {
let f = parseFloat(x);
let index = Math.pow(10, digit);
if (isNaN(f)) {
return false;
}
f = Math.round(x * index) / index; //四舍五入
let s = f.toString();
let rs = s.indexOf('.');
if (rs < 0>
rs = s.length;
if (digit > 0) {
s += '.';
}
}
if (digit > 0) {
while (s.length <= rs + digit) {
s += '0';
}
}
return s;
}
//json 数据,这里你用的是截图,所以我这边就没有把所有数据都摘下来,就放了两段做一下示范
$json
= '[
{
"id0"
: 0},
{
"time0"
:
"6:00-7:00"
},
{
"number_r0"
:
"150"
},
{
"number_y0"
:
"140"
},
{
"number_w0"
:
"10"
},
{
"number_money0"
:
"55256"
},
{
"id1"
: 1},
{
"time1"
:
"7:00-8:00"
},
{
"number_r1"
:
"250"
},
{
"number_y1"
:
"200"
},
{
"number_w1"
:
"50"
},
{
"number_money1"
:
"1000000"
}
]';
//把 json 对象转为数组
$arr
= json_decode(
$json
,true);
//初始化总结果返回数组
$arr2
=
array
();
//打印输出 json 对象转化后的数组
//var_dump($arr);
//初始化子循环次数
$ii
= 0;
//for 父循环 这里观察你的数据得出规律与需求后是以每 6 个独立对象为一个数组的条件
for
(
$i
= 0;
$i
<
count
(
$arr
) / 6;
$i
++) {
//规范写法 初始化子集对象 防止高版本php报 count 空对象错误
$arr2
[
$i
] =
array
();
//这里子循环条件从 0 开始 且循环次数≯整个 json 数据转化后的数组
while
(
count
(
$arr2
[
$i
]) + 6 <
count
(
$arr
)) {
/*
//调试对象 可以删除
//$arr2[$i][] = $arr[$ii];
//echo ($ii + 6)."
";
//echo $ii;
*/
//遍历取值后的对象 分别取得键名与键值
foreach
(
$arr
[
$ii
]
as
$key
=>
$value
) {
//将子集数据写入总结果返回数组中
$arr2
[
$i
][
$key
] =
$value
;
}
//子循环次数叠加
$ii
++;
}
}
//打印输出后的结果数组
//print_r($arr2);
//重新把数组转化为 json
echo
json_encode(
$arr2
);
*/
async mergeOrder(orderList) {
console.log(orderList);
let contrast_1 = JSON.parse(JSON.stringify(orderList));
for(let x in contrast_1){
contrast_1[x].trade_price = this.toDecimal(contrast_1[x].trade_price,this.digit_num); //进行四舍五入
}
let contrast_2 = JSON.parse(JSON.stringify(contrast_1)); //再复制一个用来做对比
let containers = []; //存放已经合并后的数据
/* 循环找出相同的值 */
console.log(contrast_1);
for(let i in contrast_1){
console.log(contrast_1[i]);
let container_list = {
trade_num: contrast_1[i].trade_num,
trade_order_id: contrast_1[i].trade_order_id,
trade_price: contrast_1[i].trade_price,
trade_type: contrast_1[i].trade_type
}
for(let m in contrast_2){
if(!contrast_2[m]){
if(m == i){
container_list = null;
break; //如果该值为空值就跳过
}
continue;
}
if(contrast_1[i].trade_price == contrast_2[m].trade_price){
if(m == i){
contrast_2[m] = null;
continue;
}
/* 如果遇到没有合并的相同价格就进行累加 */
container_list = {
trade_num: parseInt(container_list.trade_num) + parseInt(contrast_2[m].trade_num),
trade_order_id: container_list.trade_order_id + '--' + contrast_2[m].trade_order_id,
trade_price: container_list.trade_price,
trade_type: container_list.trade_type
}
contrast_2[m] = null; //销毁该次循环的值,防止多次循环到该值
}
}
console.log(container_list);
if(!container_list){
//如果为空值就直接进行下次循环
continue;
}
/* 将该次循环得到的数据放入容器内 */
containers.push(container_list);
console.log(containers);
}
console.log(containers);
return containers;
}
/**
* @param {number} x: 要进行操作的数字
* @param {number} digit: 要达到的精度,比如小数点后8位,不足补0
*/
toDecimal(x, digit) {
let f = parseFloat(x);
let index = Math.pow(10, digit);
if (isNaN(f)) {
return false;
}
f = Math.round(x * index) / index; //四舍五入
let s = f.toString();
let rs = s.indexOf('.');
if (rs < 0>
rs = s.length;
if (digit > 0) {
s += '.';
}
}
if (digit > 0) {
while (s.length <= rs + digit) {
s += '0';
}
}
return s;
}
定义个全局变量,用list或者map,在循环里面往这个集合里塞
methods:{
setData(){
let id = [1,2,3]
let records = [{val:''},{val:''},{val:''} ]
id.map((v,i)=>{
if(records [i]){
records [i].val = v
}
})
}
}
相关问题推荐
相对前几年来说,要高上不少了,毕竟入行的人也是越来越多了,基础的工作对应想要参与的人群基数越来越大,但是对于高端人才的需求还是很多,人才还是相对稀缺性的。所以,想要学web或者其他技术也一样,别等,别观望。web前端就业方向特别多包括web前端开发...
相对定位和绝对定位是定位的两种表现形式,区别如下:一、主体不同1、相对定位:是设置为相对定位的元素框会偏移某个距离。2、绝对定位:absolute 脱离文档流,通过 top,bottom,left,right 定位。二、特点不同1、相对定位:在使用相对定位时,无论是否进行移...
抓包(packet capture)就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全。抓包也经常被用来进行数据截取等。抓包可以通过抓包工具来查看网络数据包内容。通过对抓获的数据包进行分析,可以得到有用的信息。目前流行的...
常用的前端框架有Bootstrap框架、React框架、Vue框架、Angular框架、Foundation框架等等
前端是目的就业前景非常不错的一个计算机技术,但是自学的话还是有一定难度的,网络上自学是碎片化的,同时互联网技术跟新换代快,自己的话比较吃力也学习不到最新的技术。
SSR就是一台服务器,可以利用 SSR 在远程的服务器上配置 SSR,使其能够成为 SSR 节点,这样本地电脑或者其它设备利用 SSR 节点实现 VPN 或者远程上网及游戏加速等方面。ShadowsocksR(简称 SSR)是 Shadowsocks 分支,在 Shadowsocks 的基础上增加了一些数据...
计算机培训方向比较多,建议找适合自己的方向选择培训编程类:JAVA、WEB、Python、C/C++、C#等测试类:软件测试运维类:云计算、网络安全设计类:UI设计、3D建模等
1、代码判断xAxis: {type: 'time',splitLine: {show: false},interval: 3600, // 设置x轴时间间隔axisLabel: {formatter: function(value, index) {return liangTools.unix2hm(value)}}},首先要把xAxis 显示类型设置成time,然后设置对应X轴......
HTML5 + CSS + JavaScript 开发 跨平台重用代码
采用rem单位自动响应,并提供独有栅格化系统快速定义宽高、边距节省css代码量,同时总结各大型移动端网页,提供一套ui颜色搭配规范,尺寸规范,字体规范等。
iView UI、ioni、SUI
jQTouch
如果只是普通的移动端用vue react 或者dva 如果是要编译成小程序什么的或者混生 就用uni-app(对应vue语法)taro(对应react) 或者纯原生 这个没有限制的,自己怎么舒服怎么来
因为可以运用在网页和小程序的开饭中,而且开源,用着便宜,企业都很喜欢
一、Visual Studio Code下载地址:https://code.visualstudio.com/微软在2015年4月30日Build 开发者大会上正式宣布了 Visual Studio Code 项目:一个运行于 Mac OS X、Windows和 Linux 之上的,针对于编写现代 Web 和云应用的跨平台源代码编辑器。Visual Stud...
jQuery自带淡入淡出效果 https://www.w3school.com.cn/jquery/jquery_fade.asp 看看这个