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

Javascript: Grab value before and after specific value in array

本文关键字:之后 抓取 数组 Javascript      更新时间:2023-09-26

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

这样的

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
  }
}

我已经尝试了很多事情,如:向数组添加键,强制数组为对象,但没有任何帮助..

Thanks in advance

您可以使用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];

您可以这样做;

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"));