Javascript:在数组中的特定值之前和之后获取值

时间:2016-10-20 20:56:18

标签: javascript arrays for-loop key

我试图在特定数组值之前和之后获取值。

喜欢这个

var arr = ["model", "color", "handle", "front", "extras"];
var category = "color";

for(i in array) {
  if(array[i] == category {
  //grab in this case model and handle
  }
}

我尝试了很多东西,例如:向数组中添加键,将数组强制转换为对象,但没有任何帮助。

提前致谢

2 个答案:

答案 0 :(得分:2)

您可以使用indexOf来获取类别的索引。然后知道索引你可以做-1或+1来获得前后的值。

如果之前或之后没有值,比如在这个例子中类别是“extras”,那么它将返回undefined。在使用之前,您可能需要检查值是否未定义。

var arr = ["model", "color", "handle", "front", "extras"];
var category = "color";

var i = arr.indexOf(category);

var val1 = arr[i-1];
var val2 = arr[i+1];

答案 1 :(得分:0)

您可以执行以下操作;



var arr = ["model", "color", "handle", "front", "extras"],
   doit = (arr,str) => { fi = arr.indexOf(str);
                         return [arr[fi-1],str,arr[fi+1]];
                       };

console.log(doit(arr,"model"));