`
zhangyaochun
  • 浏览: 2612852 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

array的indexOf

阅读更多

整理了一些设计Grid时候依赖产生的api思考,开始发布

 

需求是这样的:

 

1.设计前我定义了选中行的属性selectedRows是一个[],用来存放所有选中行的index信息,方便后面的选中和取消选中等相关操作。

 

2.现在你设计选中行和取消选中行的时候,你一定会判断当前的rowIndex是否在这个数组selectedRows里面,但是我们知道没有原生的api去支持这个arrray.indexOf.

 

先看看tangram的做法吧

 

 

/*
首先说明一下本人做了一下小修改,去掉了一个变量的定义。因为没有引用的地方。
*indexOf-search the index of the element in a array*
*@function*
*@param {Array} source---the array*
*@param element---the element*
*@param {number} fromIndex---the start index for search
*@remark(_ps:if fromIndex <0 will set it to source.length+fromIndex)*
*@return {number} if not find will return -1 just like js-lib*
*/
ZYC.array.indexOf = function(source,element,fromIndex){
      var _lenth = source.length,  //源数组对象的length
	      //iterator = element;
	  fromIndex = fromIndex || 0;     //给一个默认值,这个做法我个人一直遵循
	  if(fromIndex < 0){              
	     //if < 0  支持负值方向查询
		 fromIndex = Math.max(0,_lenth + fromIndex);
	  }
	  for(;fromIndex<_lenth;fromIndex++){
		    if(fromIndex in source && source[fromIndex] === element){
			   return fromIndex;
			}
	  }
	  return -1;
};

//在自己开始设计的时候并没有想到像tangram一样支持index似的的查找
//而且比较好的是支持类似于string.slice()这样的原生api的负值反向查找的功能 

 

通过上述的indexOf,我上面的需求也已经完成了

 

简单举例:

 

 

var selectedRows = [0,1,2];

//在设计getSelected的时候
//判断是否选中
//rowIndex是当前的行序号
//isSelected是当前行是否被选中
//g是grid对象或者api内部的this
var isSelected = (ZYC.array.indexOf(g.selectedRows,rowIndex) != -1);
1
1
分享到:
评论

相关推荐

    为JS扩展Array.prototype.indexOf引发的问题及解决办法

    为了解决这个问题,开发者通常会选择扩展Array原型(prototype),添加indexOf方法。Array.prototype是所有数组对象的原型对象,向这个原型对象添加方法,所有数组实例都会继承这个新方法。这样,我们就可以很方便地...

    js_array-method-indexOf

    在JavaScript编程语言中,`Array.prototype.indexOf()`是一个非常重要的数组方法。它用于查找指定元素在数组中的索引,如果找到则返回该元素的索引,否则返回-1。这个方法对于处理数组数据非常实用,尤其是在需要...

    C# 数组中的 indexOf 方法及使用

    indexOf 方法的基本语法是:array.indexOf(element),其中 array 是要查找的数组,element 是要查找的元素。该方法将从数组的开头开始查找指定元素,并返回该元素的索引值。如果未找到该元素,则返回 -1。 例如: `...

    Array.prototype.indexOf:符合ES2015规范的“ Array.prototype.indexOf” shimpolyfillreplacement可以向下使用到ES3

    array.prototype.indexof 符合ES2015规范的shim / polyfill / replacement的Array.prototype.indexof ,可工作到ES3。 该软件包实现了接口。 它可以在ES3支持的环境中工作并符合。 因为Array.prototype.indexOf...

    对象不支持indexOf属性或方法的解决方法(必看)

    这个自定义的 `arrayIndexOf` 函数通过遍历数组来寻找目标元素,实现了与 `indexOf` 相同的功能,适用于所有支持 JavaScript 的环境。 总的来说,当遇到"对象不支持indexOf属性或方法"的错误时,可以考虑使用兼容性...

    dynamic-create-control-array.rar_C++builder

    int Index = ArrayIndexOf(ButtonArray, Button, 0, 10); // Now you can access the index of the button that was clicked // and perform actions accordingly. } ``` 这里,`ArrayIndexOf`函数用于查找控件在...

    Array index out of bound exception

    The program next reads in an index k from the user, then calls a method readValue(int [ ] a, int k) that would return the value of a[k]. The main program displays the value a[k]. If the index is out ...

    解决遍历时Array.indexOf产生的性能问题

    在讨论如何解决遍历时Array.indexOf产生性能问题之前,先需要了解Array.indexOf方法的工作原理及其在JavaScript中的重要性。Array.indexOf是JavaScript数组对象的一个方法,用于确定某个特定元素在数组中的位置,...

    为JS扩展Array.prototype.indexOf引发的问题探讨及解决

    Array没有indexOf方法,这样在一个数组中查找某个元素的索引时比较麻烦,为了调用方便,于是通过prototype原型扩展了Array.prototype.indexOf(),这样用起来就比较方便了。但是这个自定义的indexOf在对数组进行遍历...

    JavaScript Array对象扩展indexOf()方法

    背景:JavaScript中Array对象的标准方法中,没有indexOf()方法,可通过下面的代码扩展。 代码如下: if (!Array.prototype.indexOf) { Array.prototype.indexOf = function(elt) { var len = this.length &gt;&gt;&gt; 0; var ...

    详解PHP处理字符串类似indexof的方法函数

    在PHP编程语言中,处理字符串是一项常见的任务,而`strpos()`和`stripos()`函数则是用来查找一个子字符串在另一个字符串中首次出现位置的关键工具。本文将深入解析这两个函数的用法、区别以及如何在实际项目中应用...

    OC-NSArray数组的使用Demol

    NSUInteger index = [array indexOfObject:@"Apple"]; if (index != NSNotFound) { NSLog(@"'Apple' is at index %lu", (unsigned long)index); } else { NSLog(@"'Apple' not found in the array"); } ``` 五、...

    oc数组知识点

    NSUInteger index = [array indexOfObject:@"one"]; ``` 若要在特定范围内查找,则可使用`indexOfObject:inRange:`方法。 ##### 抽取子数组 使用`objectsAtIndexes:`方法可以从数组中抽取子数组: ```objc NSArray ...

    array-index-of:强大的Array.prototype.indexOf版本

    Array.prototype.indexOf的更强大版本 安装 $ npm install array-index-of 例子 var indexOf = require ( 'array-index-of' ) ; var index = indexOf ( [ 1 , 2 , 3 ] , 2 ) ; // 1 var index2 = indexOf ( [ { a ...

    NSArray,NSSet,NSEnumerator,NSDictionary及对应Mutable介绍

    NSLog(@"Bob 在第%zd 项", [array indexOfObject:@"Bob"]); ``` 这个例子展示了如何创建NSArray、获取数组长度、检查数组中是否存在某个对象以及获取对象的索引。类似的,对于NSSet、NSMutableSet、NSDictionary和...

    Flex中Array的IndexOf 的作用示例介绍

    IndexOf是Array类提供的一个方法,它用于查找数组中某个元素的索引位置。其工作原理是从数组的开头向后查找,如果找到了指定的元素,就返回该元素在数组中的位置(即索引),如果没有找到,则返回-1。 IndexOf方法...

Global site tag (gtag.js) - Google Analytics