javascript - 当数据不是某个索引位置时改变元素数组
问题描述
我正在学习 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'
总是不确定它在什么索引上。我应该怎么办?
解决方案
请找到以下代码:
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);
推荐阅读
- java - JPackage安装Java程序目录结构
- apache-superset - 如何在 Dremio 中按 DATE_TRUNC 分组,原始列名作为别名 [在 Superset 中]
- java - 对有库存的产品进行排序,然后按价格升序排列
- django - React Native - 向 Django 服务器发送令牌
- django - 如何在 django 的自定义过滤器中使用 {% url %} 来显示主题标签
- nestjs - 如何使用 Nest.js 中的 axios HttpService 发出 POST 请求
- git - 是否可以将 github 私有存储库用于 Web 资产并通过 jsdelivr 提供服务?
- swift - 基于 NSDocument 的应用程序:在 NSSavePanel 中选择默认文件类型
- javascript - 在使用 Electron 和 Webpack 的工作人员中找不到“路径”
- javascript - 如何在模糊中只添加一次相邻的HTML文本