node.js - 无法读取长度 - 接口内的字符串数组
问题描述
我在一个接口内放置一个字符串数组时遇到读取问题。
基本上,我在一个多行的接口中接收一个字符串数组,例如:
{
"origem": "SERVIDOR",
"codigoGrupo": "UC",
"descricaoGrupo": "UC",
"chave": [
"UC",
"AUTOLEITURA",
"AUTOLEITURA_NAO_UTILIZADA_PROBLEMA_COM_DATA"
],
"valor": "Autoleitura gravada mas não utilizada para faturamento devido a problemas de data."
},
{
"origem": "SERVIDOR",
"codigoGrupo": "UC",
"descricaoGrupo": "UC",
"chave": [
"UC",
"SERVICO",
"PEDIDO_LIGACAO",
"CALCULO_CARGA_CORRIGIDA",
"LISTA_APARELHO_NAO_INFORMADA"
],
"valor": "Lista de aparelhos não informada para o Cálculo da Carga Corrigida."
}
我需要按他的长度过滤“chave”中的值。
已经尝试使用 for、forEach 等循环进行过滤。
let arrayFiltrada: Array<string> = new Array<string>();
for (let i = 0; i < listaGrupo.length; i++) {
if (listaGrupo[i].chave.length === 3) {
listaGrupo.forEach(x => {
if (!arrayFiltrada.includes(x.chave[1])) {
arrayFiltrada.push(x.chave[1]);
}
});
} else if (listaGrupo[i].chave.length === 4) {
listaGrupo.forEach(x => {
if (!arrayFiltrada.includes(x.chave[2])) {
arrayFiltrada.push(x.chave[2]);
}
});
} else if (listaGrupo[i].chave.length === 5) {
listaGrupo.forEach(x => {
if (!arrayFiltrada.includes(x.chave[3])) {
arrayFiltrada.push(x.chave[3]);
}
});
}
}
使用上面的两个示例,我期望的输出是这样的:
- 当
listaGrupo[i].chave.length === 3
=>"AUTOLEITURA"
; - 当
listaGrupo[i].chave.length === 4
=>"PEDIDO_LIGACAO"
;
你能给这个问题一些提示吗?
解决方案
let arrayFiltrada: string[] = listaGrupo.map(x=> x.chave[x.chave.length-2])
如果我正确理解您的问题,应该会有所帮助。
这将为您提供一个字符串 Array/List,其中包含chave
来自listaGrupo
.
要仅获取唯一字符串,您可以使用以下方法之一。
arrayFiltrada = [...Set(arrayFiltrada)]
将从数组创建一个集合。集合没有重复的条目。然后 Set 的内容被“传播”回一个数组。
arrayFiltrada = arrayFiltrada.filter((value,index) => arrayFiltrada.indexOf(value)===i)
将过滤掉值,这些值也可以在数组中的较早点找到。
来自:从数组中删除重复项
推荐阅读
- json - swift cannot dig into JSONDecoder data got via alamofire
- java - 具有多个可观察对象的单个观察者
- python - 在 emacs 中的 Python 飞行检查
- javascript - 使用 React/Gatsby 在该页面上突出显示菜单图标?
- python - 平滑数据,因此使用 matplotlib 和 FFT 数据进行绘图看起来更好(频谱)
- bash - 如何通过其他文本行作为键对文本行进行排序?
- spring-boot - @XmlElement(name = "", required = true) 不能使用 springboot 验证器
- c++ - 尝试使用包含的 Qt 类库库构建项目时出错
- python - 如何翻译字典列表介绍字典列表?
- laravel-5.8 - 如何在 laravel 中编辑图像和更新