ie8浏览器下,js删除数组中指定的元素和判断数组是否包含某元素

原生JS添加Class/删除Class/判断Class 其实文中的代码通俗易懂,很容易看明白,不过还是解说一下,让像我一样的新手容易上手。   文中代码支持IE9以上,因IE5~8不支持indexOf属性,所以自己在JS原型链中写了一个indexOf的属性方法让代码支持IE5以上,具体可以查看下面的方法。 //新增类名 //删除类名//判断类名 解说:   space,这里是判断新增的类名前面需不需要加空格,如果新增的类名前面有类名不加空格我想大家都明白会 阅读详情

目前国企等一些单位仍然使用的xp等历史系统,就不得不面对ie8的对各种脚本兼容性问题了。下面是在数组中判断某元素是否存在和删除数组中指定元素做一个简单的笔记,方便后续查找,也希望能帮助有需要的js新手。

1、判断数组中是否存在某个元素 

<script>
    // 给数组添加属性regStr; fromCharCode() 函数的功能是将Unicode编码转换为字母
    // 关于此函数的更多介绍: https://www.runoob.com/jsref/jsref-fromcharcode.html
    Array.prototype.regStr = String.fromCharCode(2);

    // 给数组添加函数isExist
    Array.prototype.isExist= function (e) {
	    var r = new RegExp(this.regStr + e + this.regStr);
	    return (r.test(this.regStr + this.join(this.regStr) + this.regStr));
    };

    // 测试方法
    function testMain(){
        // 声明数组并添加元素
        var userIdArr=[];
        userIdArr.push(1);
        userIdArr.push(2);
        userIdArr.push(3);
        
        // 输出结果为 true
        console.info(userIdArr.isExist(2));
    }

</script>

2、删除数组中指定的元素

<script>
    // 给数组添加indexOf函数,功能是返回元素所在的下标;正常情况下Array自带此函数,但ie8须显式重写
    Array.prototype.indexOf = function(val) {
        for (var i = 0; i < this.length; i++) {
            if (this[i] == val) return i;
        }
        return -1;
    };
    
    // 给数组添加remove 函数,即删除指定元素。 
    Array.prototype.remove = function(val) {
        var index = this.indexOf(val);
        if (index > -1) {
            this.splice(index, 1);
        }
    };

    // 测试
    function testMain(){
        // 声明数组并添加元素
        var userIdArr=[];
        userIdArr.push(1);
        userIdArr.push(2);
        userIdArr.push(3);
        
        // 调用函数删除指定元素
        userIdArr.remove(2);
        
        // 将数组转换为字符串输出
        console.info(userIdArr.toString());
    }

</script>

 

 

使用FormData实现文件多次添加累加上传和选择删除(只支持IE8以上) 先废话一波~~ 原本的多文件上传功能在选择文件时,只能通过同一范围的鼠标框选或者ctrl/shift多选取选择文件,这样选择文件很不灵活,而且在确定之后如果漏选了文件,再次点击上传按钮时会清空表单里的文件信息,只能重复之前的操作去选文件再加上漏选的文件,十分不方便。 所以在大部分网站上选择图片上传都是可以累加的,就是在第一次选择完文件点击确定后,第二次再点击上传按钮选文件会自动跟第一次的接在一... 阅读详情

相关推荐

javascript删除元素节点removeChild()用法实例

主要介绍了javascript删除元素节点removeChild()用法,实例分析了removeChild()方法移除节点的使用技巧,需要的朋友可以参考下

JS代码判断IE6,IE7,IE8,IE9!

JS代码判断IE6,IE7,IE8,IE9! 做网页有时候会用到JS检测IE的版本,下面是js检测Microsoft Internet Explorer版本的三种代码!  有一种代码: &lt;script type="text/javascript"&gt;  var browser=navigator.appName  var b_version=navigator.appVersion...

岁月如歌去,十年弹指间 549

从投影到抗噪:直线拟合三大算法实战指南

本文深入解析了直线拟合的三大核心算法:常规最小二乘法(OLS)、正交回归(TLS)和RANSAC。通过对比其几何原理、代码实现与适用场景,为计算机视觉和数据分析领域的实践者提供了清晰的选型指南,帮助在抗噪、旋转不变性等不同需求下,精准选择并应用最合适的算法。

ujm567890的博客 576

判断数组中是否包含某个值?

判断数组中是否包含某个值? var index = Array.findIndex(item => item.id === id) //或者使用 var index = Array.indexOf(str) // 当数组里的对象为字符串时用这个方法更简单 //index==-1 代表不存在 不等于-1的就存在 ...

cyz_hd的博客 1149

深入分析大众点评 Ajax 接口:直接请求 JSON 数据高效获取评论

大众点评网站采用前后端分离架构,通过Ajax接口动态加载数据。按F12打开开发者工具,切换到Network(网络)面板。实际环境中,我们需要使用Python重现这一加密逻辑。查看请求响应,寻找包含评论数据的JSON接口。参数是大众点评的反爬机制核心,需要特别处理。:尊重网站的robots.txt文件规定。:仅将数据用于合法合规的研究和分析目的。:不侵犯大众点评的商业秘密和知识产权。打开大众点评网站,进入任意商户页面。:对采集到的用户信息进行脱敏处理。:避免对目标网站造成过大负担。

Z_suger7的博客 1584

【随机过程】Markov Chain的定义及发展历程与实际应用

本模块书写的初衷:由于在学习张波张景肖等学者所著的《应用随机过程》存在着不甚了解的知识点,经过个人查找资料并整理、分享,希望能够为有同样疑惑的读者贡献绵薄之力,同时如果个人编写内容有错误,恳请读者指正。本文为对《应用随机过程》第42页中Markov Chain基本概念的补充。1.Markov Chain的定义俄国数学家 Andrey Andreyevich Markov 研究并提出一个用数学方法就能解释自然变化的一般规律模型,被命名为马尔科夫链(Markov Chain)。

qq_49657150的博客 3746

js判断数组中是否存在某个值的几种方法

array.indexOf 判断数组中是否存在某个值,如果存在返回数组元素的下标,否则返回-1 let arr = ['something', 'anything', 'nothing', 'anything']; let index = arr.indexOf('nothing'); # 结果:2 array.includes(searchElement[, fromIndex]) 判断一个数组是否包含一个指定的值,如果存在返回 true,否则返回false。 参数:search..

weixin_45022563的博客 8万+

通过 Android Framework 调用高通 Perf HAL 实现 CPU/GPU 动态调频策略

本文详细介绍了如何通过Android Framework调用高通Perf HAL实现CPU/GPU动态调频策略。文章涵盖HAL交互原理、环境搭建、Power HAL接口实现、PerformanceHintManager应用及温度功耗平衡处理,帮助开发者安全高效地进行性能优化,避免直接操作底层硬件的风险。

keras9composer的博客 257

js判断数组中是否存在某个元素(四种方法)

法一:利用indexOf 不存在返回-1,存在返回第一次出现的索引 // js检查数组中是否包含某个元素 // 法一 indexOf var arr = [100,20,50,58,6,69,36,45,78,66,45] if(arr.indexOf(66)==-1){ console.log("不存在") }else{ console.log("存在,索引是:",arr.indexOf(6.

蜗牛~~ 16万+

从零到一:YOLOv11高帧率模型在RDK X5上的ONNX转换与部署实战

本文详细介绍了将最新的YOLOv11高帧率模型部署到地平线RDK X5开发板的完整实战流程。内容涵盖从PyTorch模型导出ONNX、地平线工具链环境配置与模型量化编译,到编写高效的板端推理代码,并针对高帧率目标进行了后处理优化。通过实战避坑指南,帮助开发者在RDK X5上实现30FPS以上的实时目标检测。

weixin_29089057的博客 139

用Python+OpenCV给斗地主做个‘外挂’:手把手教你写个桌面记牌器(附源码)

本文详细介绍了如何使用Python和OpenCV开发一个智能斗地主记牌器,包括环境搭建、图像采集与预处理、扑克牌识别技术及PyQt5界面设计。通过实战案例,帮助开发者掌握图像处理与界面开发的结合应用,提升游戏辅助工具的编写能力。

weixin_29079643的博客 546

JavaScript数组删除指定索引元素

我将设计一个直观的界面,展示在JavaScript中删除数组指定索引元素的几种方法。

BillKu的博客 1043

历年安徽省省赛AHOI初中组考点分类汇总考点分类汇总

持续更新中.....

weixin_42358969的博客 818

js判断是否是IE浏览器的几种方法

&lt;script&gt; if(!+[1,])alert("这是ie浏览器");    else alert("这不是ie浏览器"); &lt;/script&gt; 此方法是传说中的最简单的判断方法噢! 但是要注意的是:此判断方法在ie11下,不支持! 如: &lt;script type="text/javascript"&gt;  alert(+[1,]);&lt;/scr

bk562bk 250

MATLAB - Gazebo 联合仿真 —— 使用 UR10 机械臂检测和采摘水果

本示例演示如何在 Gazebo 物理模拟器中设置 Universal Robotics UR10 机械臂和仿真环境。您需要配置一个机器人从树上摘苹果的仿真环境。本示例演示如何利用这些工具箱,使用 Universal Robotics UR10 机械手模拟机器人检测并从树上摘取苹果。Robotics System Toolbox™ - 在 Simulink® 和 Gazebo 中对机械手进行建模、规划和模拟。Navigation Toolbox™ - 生成三维环境的占用图。

机器人控制与仿真应用 4182

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

【JavaScript】数组 ⑤ ( 数组案例 | 创建数组存放 1 - 10 元素 | 数组筛选 | 删除数组元素 | 翻转数组元素 | 数组元素冒泡排序 )

一、JavaScript 数组案例 1、创建数组存放 1 - 10 元素 2、数组筛选 3、数组筛选 2 4、删除数组元素 5、翻转数组元素 6、数组元素冒泡排序

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 1487

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

js删除数组元素、清空数组的简单方法

原文:http://www.jb51.net/article/89335.htm 一、清空数组 1 2 3 var ary = [1,2,3,4]; ary.splice(0,ary.length);//清空数组 console.log(ary); // 输出 [],空数组,即被清空了

Vasilis_1的博客 1861

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

深度学习工具包 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删除类名和添加类名

添加类名 element.classList.add(class1, class2, ...); 兼容IE8的写法 function addClass(el, className) { var oldClassStr = ''; //先判断元素中是否有class属性 if(ele.getAttribute('class')){ ...

qq_43372176的博客 5026

解决IE兼容性问题:Taggle.js旧浏览器支持方案

Taggle.js是一款轻量级的标签输入库,提供无依赖的表单标签功能。对于需要支持旧版IE浏览器(IE8/IE9)的开发者,本文将详细介绍如何通过官方提供的兼容性方案,让Taggle.js在这些环境中稳定运行。 ## 为什么需要IE兼容性处理? 尽管现代浏览器已广泛支持ES5+特性,但在企业级应用或特定场景下,仍需兼容IE8/IE9等旧版本浏览器。Taggle.js核心库使用了部分高级Java

gitblog_00366的博客 1087

JavaScript 获取元素的8种方法

DOM 文档对象模型(Document Object Model),是W3C组织推荐的处理可扩展置标语言的标准编程接口。简单理解就是 DOM 是关于如何获取、修改、添加或删除 HTML 元素的标准。我们用JavaScript对网页进行的所有操作都是通过DOM进行的。 JS获取DOM元素的八种方法 通过ID获取(getElementById) 通过name属性(getElementsByName)...

qq_41363062的博客 2230

JavaScript删除数组中指定值的元素

/*方法:Array.remove(dx) *功能:删除数组元素. *参数:dx删除元素的下标. *返回:在原数组上修改数组 */ //经常用的是通过遍历,重构数组. Array.prototype.remove=funct...

143

删除数组中符合指定条件的元素

不符合指定条件,可能是指定数组array中的某一项不符合某一值的要求;或者是拿另一个数组arr对比,要求array只留下复合arr中的值或者删除掉复合arr中的值。

天命爱心职责的博客 1417

javascript - 检测对象中是否存在某个属性

参考一: vararray = [{'yaxis':22,'lines':true},{'lines':true}] var isTrue = array.some(val => { return val.yaxis }) if(isTrue === true){ console.log('数组对象里面存在 属性 yaxis') } 1.使用in关键字。 该方法可...

前端技术的学习整理 4242

web前端学习611-627(JavaScript数组---数组,创建数组,获取数组元素,遍历数组,数组中新增元素,数组案例)

文章目录JavaScript数组1 数组的概念2 创建数组2.1 数组的创建方式2.2 利用new 创建数组2.3 利用数组字面量创建数组(常用)2.4 数组元素的类型3 获取数组元素数组的索引4 遍历数组4.1 数组的长度案例1:求和案例2:数组最大值案例3:数组转换为分割字符串5 数组中新增元素5.1 通过修改length长度新增数组元素 JavaScript数组 1 数组的概念 之前学的变量:存储一个值。 如果存班级中所有学生姓名:可以使用数组(Array),存放一组数据,提供访问(获取)方式 数组:

weixin_51249285的博客 2963

js检查某个元素在数组中的索引值

在现在代浏览器中判断一个元素在不在一个数组中,咱们可以用Array对象的indexOf()方法来取得这个元素在当前数组中的索引值,若索引值不等于-1,数组中就存在这个元素, 例如: 1 2 3 4 5 6 7 8 9 10 11 12 13 var arr 

小青菜的日志 1万+
下一篇: 解决Linux 修改编码格式找不到/etc/sysconfig/i18n
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

也曾满眼星河

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值