格式化数组中的最后一个元素

时间:2019-07-09 07:01:46

标签: javascript

我有一个数组,其长度最多可以包含20个元素:

[ '0ad39f02478f5;',
  '309c9e9051482;',
  'dd7d5faf07569;',
  'ghdg9f02478f5;',
  '30967uj051482;',
  'ad398ixc478f5;',
  '39c9frtuyr482;' ]

我需要从数组的最后一个元素中删除分号。

这是我期望的结果:

[ '0ad39f02478f5;',
  '309c9e9051482;',
  'dd7d5faf07569;',
  'ghdg9f02478f5;',
  '30967uj051482;',
  'ad398ixc478f5;',
  '39c9frtuyr482' ]
for (const value of Object.values(arrayOfJobs)) {
    console.log(value)
    const arrayLength = value.length - 1;
    value[arrayLength].replace(';', '');
    console.log(value)
}

我试图这样做,但是仍然不能删除数组末尾的分号。我的问题是未分配值

6 个答案:

答案 0 :(得分:5)

您可以弹出该项目,对字符串进行切片,然后将其推入数组的末尾。

var array = ['0ad39f02478f5;', '309c9e9051482;', 'dd7d5faf07569;', 'ghdg9f02478f5;', '30967uj051482;', 'ad398ixc478f5;', '39c9frtuyr482;']

array.push(array.pop().slice(0, -1));

console.log(array);

答案 1 :(得分:2)

使用split删除;

var a = ['0ad39f02478f5;',
  '309c9e9051482;',
  'dd7d5faf07569;',
  'ghdg9f02478f5;',
  '30967uj051482;',
  'ad398ixc478f5;',
  '39c9frtuyr482;'
];
if(a.length>0)
a[a.length - 1] = a[a.length - 1].split(';')[0]
console.log(a)

使用replace

var a = ['0ad39f02478f5;',
  '309c9e9051482;',
  'dd7d5faf07569;',
  'ghdg9f02478f5;',
  '30967uj051482;',
  'ad398ixc478f5;',
  '39c9frtuyr482;'
];
if(a.length>0)
a[a.length - 1] = a[a.length - 1].replace(';','');
console.log(a)

答案 2 :(得分:2)

您的实施工作几乎已经完成。您只需要考虑value[arrayLength].replace(';', '')实际上并没有改变值,而是返回了一个新值。因此,这样分配新值

...
value[arrayLength] = value[arrayLength].replace(';', '')
...

您也不必遍历所有项目,因为我们只想获取最后一个。所以这里是您的解决方案调整。

const arrayOfJobs = [
  '0ad39f02478f5;',
  '309c9e9051482;',
  'dd7d5faf07569;',
  'ghdg9f02478f5;',
  '30967uj051482;',
  'ad398ixc478f5;',
  '39c9frtuyr482;'
];

arrayOfJobs[arrayOfJobs.length - 1] = arrayOfJobs[arrayOfJobs.length - 1].replace(';', '');

console.log(arrayOfJobs);

答案 3 :(得分:1)

您可以使用map来获取初始数组的副本,其中最后一个值被更改:

const data = [ 
  '0ad39f02478f5;',
  '309c9e9051482;',
  'dd7d5faf07569;',
  'ghdg9f02478f5;',
  '30967uj051482;',
  'ad398ixc478f5;',
  '39c9frtuyr482;' 
  ];
  
function getFinalArray(arr) {
  return arr.map((x, i) => {
    if (i === arr.length - 1)
      return x.replace(';', '');
    return x;
  });
}

console.log(getFinalArray(data));

答案 4 :(得分:0)

以一种简单的方式

l[lastIndex] = l[lastIndex].replace('from', 'to')

获取上一个索引=> [].length-1

l = ['0ad39f02478f5;', '309c9e9051482;', 'dd7d5faf07569;', 'ghdg9f02478f5;', '30967uj051482;', 'ad398ixc478f5;', '39c9frtuyr482;']
l[l.length-1] = l[l.length-1].replace(';', '');
console.log('my list', l);

答案 5 :(得分:0)

一个简单的解决方案

var x = [ '0ad39f02478f5;',
  '309c9e9051482;',
  'dd7d5faf07569;',
  'ghdg9f02478f5;',
  '30967uj051482;',
  'ad398ixc478f5;',
  '39c9frtuyr482;' ]

var len = x.length-1
x[len] = x[len].replace(";", "")
console.log(x)