首页 > 解决方案 > 当数据不是某个索引位置时改变元素数组

问题描述

我正在学习 javascript 对象数组,当我从 API 获取数据时,有时我会在不确定的索引位置从 API 获取数据,例如:

[
  {formatted_name: 'central_java', name: 'Central Java'},
  {formatted_name: 'east_java', name: 'East Java'},
  {formatted_name: 'west_java', name: 'West Java'},
];

有时像这样:

[
  {formatted_name: 'east_java', name: 'East Java'},
  {formatted_name: 'central_java', name: 'Central Java'},
  {formatted_name: 'west_java', name: 'West Java'},
];

有时也是这样:

[
  {formatted_name: 'west_java', name: 'West Java'},
  {formatted_name: 'central_java', name: 'Central Java'},
  {formatted_name: 'east_java', name: 'East Java'},
];

我想问的是,当我从 fetch API 获取数据时,如何创建条件或更改数组元素的位置,以便formatted_name: 'east_java'始终索引为 0?

我已经尝试过这段代码,但它不起作用:

function insertAndShift(arr, from, to) {
  let cutOut = arr.splice(from, 1)[0];
  arr.splice(to, 0, cutOut);
}

使用上面的代码时,代码不能灵活,因为formatted_name: 'east_java'总是不确定它在什么索引上。我应该怎么办?

标签: javascript

解决方案


请找到以下代码:

test = [
      {formatted_name:'west_java', name:'West Java'}, 
      {formatted_name:'central_java', name:'Central Java'},
      {formatted_name: 'east_java', name:'East Java'},
];
test.forEach(function(value, key) {
if (value.formatted_name == "east_java"){
    test.splice(key, 1);
    test.unshift(value)
}
});
console.log(test);


推荐阅读