使用indexOf等在JavaScript的数组中进行元素查找和替换

代码如下:

<html>
<head>
<title> Extend JavaScript Array Method </title>
<script language="javascript">
<!--
Array.prototype.indexOf=function(substr,start){
var ta,rt,d='\0';
if(start!=null){ta=this.slice(start);rt=start;}else{ta=this;rt=0;}
var str=d+ta.join(d)+d,t=str.indexOf(d+substr+d);
if(t==-1)return -1;rt+=str.slice(0,t).replace(/[^\0]/g,'').length;
return rt;
}

Array.prototype.lastIndexOf=function(substr,start){
var ta,rt,d='\0';
if(start!=null){ta=this.slice(start);rt=start;}else{ta=this;rt=0;}
ta=ta.reverse();var str=d+ta.join(d)+d,t=str.indexOf(d+substr+d);
if(t==-1)return -1;rt+=str.slice(t).replace(/[^\0]/g,'').length-2;
return rt;
}

Array.prototype.replace=function(reg,rpby){
var ta=this.slice(0),d='\0';
var str=ta.join(d);str=str.replace(reg,rpby);
return str.split(d);
}

Array.prototype.search=function(reg){
var ta=this.slice(0),d='\0',str=d+ta.join(d)+d,regstr=reg.toString();
reg=new RegExp(regstr.replace(/\/((.|\n)+)\/.*/g,'\\0$1\\0'),regstr.slice(regstr.lastIndexOf('/')+1));
t=str.search(reg);if(t==-1)return -1;return str.slice(0,t).replace(/[^\0]/g,'').length;
}

window.onload=function(){
var a=new Array('aa1321321','b4323424b','cc345345','dd4654','dd4654','b4323424b');
document.getElementById('t1').value=a.toString();
//document.getElementById('t2').value=a.indexOf('cc345345');
//document.getElementById('t3').value=a.lastIndexOf('dd4654');
document.getElementById('t4').value=a.replace('b4323424b','*');//把第一个b4323424b替换成*
document.getElementById('t5').value=a.search(/dd4654/);//未找到返回-1
};
//-->
</script>
<style type="text/css">
<!--
input{width:600px}
//-->
</style>
</head>

<body>
<table>
<tr><td>数组a:</td><td><input id="t1" type="text" /></td></tr>
<tr><td>a.indexOf('cc345345'):</td><td><input id="t2" type="text" /></td></tr>
<tr><td>a.lastIndexOf('dd4654'):</td><td><input id="t3" type="text" /></td></tr>
<tr><td>a.replace(/\d/g,'*'):</td><td><input id="t4" type="text" /></td></tr>
<tr><td>a.search(/dd4654/):</td><td><input id="t5" type="text" /></td></tr>
</table>
</body>
</html>

(0)

相关推荐

  • javascript实现查找数组中最大值方法汇总

    方法一(使用递归函数): var arr = [9,8,55,66,49,68,109,55,33,6,2,1]; var max = arr[0]; function findMax( i ){ if( i == arr.length ) return max; if( max < arr[i] ) max = arr[i]; findMax(i+1); } findMax(1); console.log(max); 方法二(使用for循环遍历): var arr = [9,8,55,66,4

  • JavaScript实现找出数组中最长的连续数字序列

    原始题目: 给定一个无序的整数序列, 找最长的连续数字序列. 例如: 给定[100, 4, 200, 1, 3, 2], 最长的连续数字序列是[1, 2, 3, 4]. 小菜给出的解法: function maxSequence(array,step){ var _array = array.slice(), //clone array _step = 1, _arrayTemp = [], i = 0; var parseLogic = { //result container parseRe

  • 利用js查找数组中指定元素并返回该元素的所有索引示例

    前言 这篇文章主要给大家介绍的是利用js查找数组中指定元素并返回该元素的所有索引的相关资料,文中给出了详细的示例代码,下面话不多说,来看看详细的代码示例吧. 示例代码 //在数组中查找所有出现的x,并返回一个包含匹配索引的数组 function findall(a,x){ var results=[], len=a.length, pos=0; while(pos<len){ pos=a.indexOf(x,pos); if(pos===-1){//未找到就退出循环完成搜索 break; } r

  • JavaScript使用二分查找算法在数组中查找数据的方法

    本文实例讲述了JavaScript使用二分查找算法在数组中查找数据的方法.分享给大家供大家参考.具体分析如下: 二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好:其缺点是要求待查表为有序表,且插入删除困难.因此,折半查找方法适用于不经常变动而查找频繁的有序列表.首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功:否则利用中间位置记录将表分成前.后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一

  • javascript 折半查找字符在数组中的位置(有序列表)

    复制代码 代码如下: /** * 折半查找字符在数组中的位置(有序列表) * @param array 被检索的数组 * @param x 要查找的字符 * @type int * @returns 字符在数组中的位置,没找到返回-1 */ function binarySearch(array,x){ var lowPoint=1; var higPoint=array.length; var returnValue=-1; var midPoint; var found=false; whi

  • JavaScript实现在数组中查找不同顺序排列的字符串

    需求描述:从一组数组中找出一组按不同顺序排列的字符串的数组元素.假如有这样一个数组: 复制代码 代码如下: [ 'abcd', 'hello', 'bdca', 'olleh', 'cadb', 'nba', 'abn', 'abc' ] 需要找出的结果是: 复制代码 代码如下: [ 'abcd', 'bdca', 'cadb' ] 那么这里的关键点是判断一组字符串是否是否只是字符的顺序不同,只要解决整个关键点其他都好办了. 方法1: 复制代码 代码如下: var stringClassify

  • js中数组结合字符串实现查找(屏蔽广告判断url等)

    1.广告屏蔽 有时候我们的广告页面都是统一的用js控制的,有些页面不想显示部分广告,那么我们只需要文章的id即可,纯字符串查找简单有效,我们也在用 var ad_softlist = ',,133015,155868,146429,'; if("undefined" != typeof softid){ //判断文章id是否存在,不存在就不执行,一般页面中会定义好var softid=45465; if(softid!=null && ad_softlist.index

  • 使用indexOf等在JavaScript的数组中进行元素查找和替换

    复制代码 代码如下: <html> <head> <title> Extend JavaScript Array Method </title> <script language="javascript"> <!-- Array.prototype.indexOf=function(substr,start){ var ta,rt,d='\0'; if(start!=null){ta=this.slice(start);

  • PHP的数组中提高元素查找与元素去重的效率的技巧解析

    提高查找数组元素的效率 1.php in_array方法说明 php查找数组元素是否存在,一般会使用in_array方法. bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] ) 参数说明: needle 待搜索的值,如果needle是字符串,比较是区分大小写的. haystack 用来比较的数组 strict 如果第三个参数 strict 的值为 TRUE 则 in_array() 函数还会检查 n

  • Javascript实现数组中的元素上下移动

    前言 我们交换数组可以实现元素上下移动了,这个效果我们在表格或以前排序算法中都会用到,下面来看一个JavaScript下实现交换数组元素上下移动例子 在写项目的时候,要实现一个数组记录上下移动的示例.写起来也没有没麻烦,无非是交换数组元素.最终实现代码如下,比较重要的是那个函数. 示例代码: // 交换数组元素 var swapItems = function(arr, index1, index2) { arr[index1] = arr.splice(index2, 1, arr[index

  • JavaScript通过元素索引号删除数组中对应元素的方法

    本文实例讲述了JavaScript通过元素索引号删除数组中对应元素的方法.分享给大家供大家参考.具体分析如下: JavaScript通过元素的索引号删除数组中的元素,如果要删除第3个元素,则使用RemoveValByIndex(2)即可,JS数组从0开始 function RemoveValByIndex(arr, index) { arr.splice(index, 1); } test = new Array(); test[0] = 'Apple'; test[1] = 'Ball'; t

  • javascript实现数组中的内容随机输出

    有时候我们可能需要从数组中随机抽出一项内容,下面就通过一段代码实例介绍一下如何实现此效果. 代码如下: <script type="text/JavaScript"> var theArray=new Array(); theArray[0]="我们"; theArray[1]="我们一"; theArray[2]="我们二"; theArray[3]="我们三"; theArray[4]=&q

  • JavaScript实现将数组中所有元素连接成一个字符串的方法

    本文实例讲述了JavaScript实现将数组中所有元素连接成一个字符串的方法.分享给大家供大家参考.具体如下: 下面的代码演示了JS中如何通过数组对象的join方法将数组元素连接成一个字符串输出 <!DOCTYPE html> <html> <body> <p id="demo"> Click the button to join the array elements into a string. </p> <butto

  • Javascript从数组中随机取出不同元素的两种方法

    一.常规算法 第一种方法较常规,经测试有bug,数据量大以后随机几次返回的对象直接是function而不是object. 当然简单数据类型应该没有这个问题. 示例代码 /** 从数组中随机抽取数据 2016-09-09 **/ function getArrItem(arr, num) { var temp_array = new Array(); for (var index in arr) { temp_array.push(arr[index]); } var return_array =

  • Javascript获取数组中的最大值和最小值的方法汇总

    比较数组中数值的大小是比较常见的操作,比较大小的方法有多种,比如可以使用自带的sort()函数,下面来介绍如下几种方法,代码如下: 方法一: //最小值 Array.prototype.min = function() { var min = this[0]; var len = this.length; for (var i = 1; i < len; i++){ if (this[i] < min){ min = this[i]; } } return min; } //最大值 Array

  • JavaScript从数组中删除指定值元素的方法

    本文实例讲述了JavaScript从数组中删除指定值元素的方法.分享给大家供大家参考.具体分析如下: 下面的代码使用了两种方式删除数组的元素,第一种定义一个单独的函数,第二种为Array对象定义了一个removeByValue的方法,调用非常简单 定义函数removeByValue进行元素删除 function removeByValue(arr, val) { for(var i=0; i<arr.length; i++) { if(arr[i] == val) { arr.splice(i,

  • javascript sort()对数组中的元素进行排序详解

    javascript sort()可以对数组中的元素进行排序, 语法格式:arrayObject.sort(sortby) arrayObject是数组对象,sortby为可选项,用来确定元素顺序的函数的名称,如果这个参数被省略,那么元素将按照ASCII字符顺序进行升序排列. 在没有使用比较函数进行排序时,sort方法是按字符的ASCII值进行排序的,先从第一个字符比较,如果第一个字符相等,再比较第二个字符,以此类推. 对于数值型数据,如果按照字符比较,得到的结果可能并不是我们想要的,因此需要借

随机推荐