JS按照特定的条件对数组进行归类

js实现对象数组内依据键值自定义计算---主键去重+指定属性求和 js实现对象数组内依据键值自定义求和计算 考虑这样的业务背景: 通过接口获取某公司当月所有员工的每日考勤数据如下, [ {id:1,score:2,date:"2019.06.19"} ,{id:1,score:5,date:"2019.06.20"} ,{id:1,score:7.6,date:"2019.06.21"} ,{id:1,score:3,date:"2019.06.22"} ,{i... 阅读详情

函数定义:

function groupBy(arr, prop, callback) {

            var newArr = [],
                tempArr = [];
            for (var i = 0, j = arr.length; i < j; i++) {

                var result = callback(arr[i], arr[i + 1], prop);

                if (result) {

                    tempArr.push(arr[i]);

                } else {
                    tempArr.push(arr[i]);
                    newArr.push(tempArr.slice(0));
                    tempArr.length = 0;
                }

            }

            return newArr;
        }

测试数据:

var dates = [{
            created_at: "2017-10-23 12:00:00"
        }, {
            created_at: "2017-10-23 13:00:00"
        }, {
            created_at: "2017-10-23 14:00:00"
        }, {
            created_at: "2017-10-24 12:00:00"
        }, {
            created_at: "2017-10-22 12:00:00"
        }, {
            created_at: "2017-10-22 12:00:00"
        }, {
            created_at: "2017-10-25 12:00:00"
        }, {
            created_at: "2017-10-28 12:00:00"
        }, {
            created_at: "2017-10-28 11:00:00"
        }]

函数调用:

var result = groupBy(dates, 'created_at', (a, b, key) => {

            var C1 = a[key].split(' ')[0];
            var C2 = null;
            try {
                C2 = b[key].split(' ')[0];
            } catch (exception) {
                C2 = null;
            }

            return C1 == C2;
        });

找出两个整数数组中同时出现的整数 - 华为OD机试真题(A卷、JavaScript题解) 现有两个整数数组,需要你找出两个数组中同时出现的整数,并按照如下要求输出: 1、 有同时出现的整数时,先按照同时出现次数(整数在两个数组中都出现并且出现次数较少的那个)进行归类,然后按照出现次数从小到大依次按行输出。 2、没有同时出现的整数时,输出NULL。 阅读详情

相关推荐

js 实现根据数组分组动态生成table(合并相同项)

NULL 博文链接:https://guirudaoge.iteye.com/blog/1420635

【JS】js数组分组,javascript实现数组的按属性分组

项目代码中有很多时候需要按一定的条件实现按属性分组。

余浩的博客 1万+

保姆级教程:用vxe-grid给管理后台加个「智能筛选」功能(支持模糊搜索/多选/范围查询)

本文提供了一份详细的Vxe-Grid智能筛选功能实现教程。通过自定义筛选器渲染,文章逐步指导开发者为后台管理系统添加支持模糊搜索、多选下拉和数值范围查询的智能筛选功能,并分享了性能优化与移动端适配等实战经验。

weixin_29021291的博客 536

js对数组进行分类

假设我们有一个员工列表,其中每个员工都是一个具有 2 个属性的对象:name 和 age。 const people = [ { name: 'Alice', age: 21 }, { name: 'Max', age: 20 }, { name: 'Jane', age: 20 } ]; 现在,我们需要对其进行按 age 分类,最终实现输出结果如下: const groupedPeople = { 20: [ { name: 'Max', age: 20 }, {

jkl_AINY的博客 4495

MDK开发篇:基于立创逻辑派FPGA-G1与Cortex-M1软核的按键控制LED实战

本文详细介绍了基于立创逻辑派FPGA-G1开发板与高云Cortex-M1软核的完整开发流程。通过Gowin云源软件配置软核系统与GPIO外设,并在Keil MDK环境中编写按键控制LED的C程序,最终实现程序固化与上电自启动。教程涵盖硬件配置、软件开发、在线调试与固化部署全步骤,帮助STM32开发者快速上手FPGA软核开发。

weixin_42103128的博客 149

PyTorch ModelNet点云数据集加载实战:从下载到Dataset类完整实现

在三维视觉与点云处理领域,数据集是算法研发的基石。ModelNet作为三维物体分类的基准数据集,其地位类似于图像领域的MNIST,是入门和评估模型性能的通用标准。理解其数据格式与加载原理,是进行点云分类、分割等任务的关键前置步骤。通过PyTorch的Dataset类,开发者可以构建高效的数据管道,将原始点云文件转换为神经网络可直接处理的张量格式,这一过程涉及数据采样、归一化、特征组装等核心操作,直接影响模型的训练效率和最终性能。本文聚焦于ModelNet10/40数据集,详细解析其目录结构,并提供一套稳健的

weixin_29032337的博客 283

js 实现将数组中的数据根据某个属性重新进行归类、类似父子级菜单

js 实现将数组中的数据根据某个属性重新进行归类、类似父子级菜单

DarlingYL的博客 744

虚拟化 之三 详解 ARM 平台 jailhouse 的移植适配、构建及使用(飞腾派)

本文将探索学习通过在飞腾官方提供的 Buildroot 构建系统移植适配 openEuler 内核以及 jailhouse 源码 Package 进而直接构建一个适用于飞腾派开发板的带有 jailhouse 的 openEuler 发行版。

技术干货 1007

js 按照类型分割数组

分割数据样式 let data= [ { Name: '张三', Item: 'AA', Value: 18 }, { Name: '张三', Item: 'BB', Value: 28 }, { Name: '张三', Item: 'CC', Value: 19 }, { Name: '张三', Item: 'DD', Value:...

小白先生的博客 952

视觉SLAM十四讲slambook2示例代码所有依赖库的编译安装教程(VTK、OpenCV3、ceres、Sophus、g2o、Eigen、Pangolin、googletest等)

这是2021年的最后一篇博客~ 新年快乐! 0 准备工作   首先需要先安装cmake编译器: sudo apt-get install cmake   以及,将十四讲的示例代码克隆下来(十四讲的源码地址点击这里): git clone --recursive https://github.com/gaoxiang12/slambook2.git   由于里面的3rdparty文件夹内所有内容都来自于其他github仓库,所以需要加上--recursive参数,不然克隆下来的内容不完整。   如果你.

zeeq的博客 7839

具身智能:原理、算法与系统 第3章 具身智能的感知-认知-行为框架

具身智能的PCB框架源于对生物智能系统的观察:动物通过感官接收环境信息(感知),基于内部模型进行预测和决策(认知),并通过身体执行动作改变环境(行为),而这一改变又通过感知反馈形成闭环。这一框架在两篇核心文献中得到了深入阐述:提出了系统的数学形式化和工程实现,则从认知科学角度强调了归纳偏置和双过程理论的重要性。

VectorShift的博客 155

js 数组对象 排序相同的属性

有时候我们需要把相同的参数放一起,比如下面数组对象中,我们需要把spec相同的参数放一起怎么做呢? let arr=[ { name: "蓝色", spec: "颜色", }, { name: "少年", spec: "适用人群", }, ...

qq_39394601的博客 2675

【数据分享】12.5米分辨率DEM地形数据(分省)

该数据来源于NASA地球科学数据网站(https://nasadaacs.eos.nasa.gov/),是ALOS卫星获取的高精度地形数据。该数据由于精度高,包括全省范围的数据和省内每个城市范围的数据!

JData_Engineer的博客 2172

JavaScript 将数组中具有相同值的对象 取出组成新的数组

JavaScript 将数组中具有相同值的对象 取出组成新的数组 var arr=[{name:2,id:3},{name:2,id:4},{name:3,id:5},{name:3,id:6},{name:1,id:1},{name:1,id:2}]; // 传入一个数组 // 按照特定方式格式化 function sortArr(arr, ...

qq_35859392的博客 9745

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

js将数组中相同项放在一个数组

js将数组中相同项放在一个数组 原本数组长这样:图一 想将数组中相同项放在一个数组 得到:图二 转换中也可以得到:图三 方法: sortArr(arr, str) { var _arr = [], _t = [], // 临时的变量 _tmp; // 按照特定的参数将数组排序将具有相同值得排在一起 arr = arr.sort(function (a, b) { var s = a[str],

Fairyasd的博客 7546

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

js数组常用方法归类整理(持续更新)

数组是js里面非常重要的数据结构,日常工作中避免不了对数组进行各种操作。一下便针对数组做一个整理 array.filter()过滤函数,返回符合条件的item var arr = [1, 2, 3, 3, 2]; var r = arr.filter(function (item, index, self) { console.log(item); // 依次打印'A', '...

似码非码的博客 4551

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

把数组中特定key一样的元素放在一个元素(数组)里

sortArr(arr, str) { var _arr = [], _t = [], _tmp = arr[0][str]; // 按照特定的参数将数组排序将具有相同值得排在一起 arr = arr.sort(function(a, b) { var s = a[str], t = b[str]; .

那一日面朝大海的博客 1013

js处理数组对象中相同字段放到同一个数组中

var arr=[{name:2,id:3},{name:2,id:4},{name:3,id:5},{name:3,id:6},{name:1,id:1},{name:1,id:2}]; // 传入一个数组 // 按照特定方式格式化 function sortArr(arr, str) { var _arr = [], _t = [], // 临时的变量 _tmp; // 按照特定的参数将数组排序将具有相同值得排在一起 arr...

wqnmlgbsz的博客 5258

数组按照某一个属性进行分类

根据数组中的某一个属性值来进行分组

四岁爱上了她的博客 357

对象数据,按照某个值进行分组

对象数据,按照某个值进行分组 let sourceData = [{ id: 'aaa', value: '9898' }, { id: 'bbb', value: '7777' }, { id: 'aaa', value: '5555' } ] let map = {}, de...

cheng_chunxiao的博客 616

js中数组中相同的元素进行整合并创建一个新数组

// 传入一个数组 // 按照特定方式格式化 export function sortArr(arr, str) { const _arr = []; let _t = []; // 临时的变量 let _tmp; // 按照特定的参数将数组排序将具有相同值得排在一起 arr = arr.sort((a, b) => { const s = a[str]; const t = b[str]; return s < t ? -1 : 1; }

weixin_45389051的博客 1311

第二十一篇 JS按数组对象某列属性进行数据分组

很简单的功能,下面直接贴上代码 const dataArray = [ { id: 1, value: '值1', text1: '文本一' }, { id: 2, value: '值2', text1: '文本二' }, { id: 3, value: '值3', text1: '文本三' }, { id: 1, value: '值4', text1: '文本四' }, { id: 2, value: '值5', text1: '文本五' } ] /

Yzt_199626的博客 659

java对象数组如何赋值_javasript中对象数组赋值问题

RT,首先朋不功事做时次功好来多这开制的请一例农在我从服务器获取的数据是这样是能览调不页新代些事几求事都时学下是事的var mData =[{reportTitle:"报表1",reportName:"近七周缺货率"},{reportTitle:"报表1",reportName:"近7周商品动销率对比"},{reportTitle:"报表2",reportName:"近7周商品动销率对比"},{r...

weixin_39796652的博客 1130

按照数组对象中指定字段分类 并返回数据

var arr=[{name:2,id:53},{name:2,id:4},{name:3,id:5},{name:3,id:6},{name:1,id:1},{name:1,id:2}]; // 传入一个数组 // 按照特定方式格式化 function sortArr(arr, str) { var _arr = [], _t = [], // 临时的变量 _tmp; // 按照特定的参数将数组排序将具有相同值得排在一起 arr.

426
上一篇: 深入理解JS原型及其扩展
下一篇: JS删除一个数组中满足条件的所有数据
遛狗的代码
博客等级 码龄11年 10粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值