У меня есть массив:

last7day = ["", 20191219, 20191220, 20191221, 20191222, 20191223, 20191224, 20191225] 

Я хочу разбить последние 2 цифры из них. Я пробовал last7day.split(-2) как команду slice, но не смог.

Желаемый вывод:

 last7day = ["", 19, 20, 21...] 
 const last7day = ["", 20191219, 20191220, 20191221, 20191222, 20191223, 20191224, 20191225]; const arr = last7day.map(day ={amp}gt; day.slice(-2)); console.log(arr); 

Вам просто нужно получить остаток от деления на 100:

 last7day.map(x ={amp}gt; x % 100) 

Если в вашем массиве есть строки, которые вы хотите пропустить, вы можете проверить, являются ли значения числами:

 last7day.map(x ={amp}gt; typeof(x) === 'number' ? x % 100 : "") 

Вам действительно не нужно конвертировать числа в строки и обратно.

Измените число на строку, а затем используйте slice() . Затем вы можете преобразовать строковое значение обратно в число, используя parseInt() или добавив для этого объединенного результата.

 var last7day = ["", 20191219, 20191220, 20191221, 20191222, 20191223, 20191224, 20191225]; var res = last7day.map((item) ={amp}gt; item ?  (item.toString().slice(0, -2)): ''); console.log(res); 

Вы можете взять Array#slice с отрицательным значением в качестве второго параметра.

 var last7day = ["", 20191219, 20191220, 20191221, 20191222, 20191223, 20191224, 20191225], result = last7day.slice(0, -2); console.log(result); 

То же самое относится и к строкам.

 var last7day = ["", 20191219, 20191220, 20191221, 20191222, 20191223, 20191224, 20191225], result = last7day.map(s ={amp}gt; s.toString().slice(0, -2)); console.log(result); 

Вы можете использовать функцию слайса для этого действия. Пожалуйста, попробуйте ниже код.

 var last7day = ["", 20191219, 20191220, 20191221, 20191222, 20191223, 20191224, 20191225]; const finalArray= last7day.map(day ={amp}gt; day.slice(-2)); console.log(finalArray); 

finalArray это будет ваш вывод

Вы можете преобразовать в строку, а затем использовать метод substring :

 const result = last7day.map(d ={amp}gt; [ d.toString().substring(0, 4), d.toString().substring(4, 6), d.toString().substring(6, 8) ]) 

Пример:

 var last7day = ["", 20191219, 20191220, 20191221, 20191222, 20191223, 20191224, 20191225] const result = last7day.map(d ={amp}gt; [d.toString().substring(0, 4), d.toString().substring(4, 6), d.toString().substring(6, 8)]) console.log(result) 
 const array = ["", 20191219, 20191220, 20191221, 20191222, 20191223, 20191224, 20191225]; const numArray = array.map(v ={amp}gt; { if(typeof v === 'number') { const num = v.toString(); const c = num.substring(num.length -2, num.length); return parseInt(c); } return v }); console.log(numArray) 

Вы можете использовать так

 let last7day = ["", 20191219, 20191220, 20191221, 20191222, 20191223, 20191224, 20191225] let newDays = last7day.map((i)={amp}gt;{ return i.toString().substr(-2) }) console.log(newDays); 

Используя метод substr, чтобы получить последние 2 цифры

  1. преобразовать элементы в строку
  2. получить последние два символа каждого элемента
 const last7day = ["", 20191219, 20191220, 20191221, 20191222, 20191223, 20191224, 20191225] const result = last7day .map(x ={amp}gt; { if (typeof x === 'number') { const y = x.toString(); return y.substr(y.length - 2) } return x }) console.log(result) 

На основании последнего редактирования вопроса:

 const last7days = ["", 20191219, 20191220, 20191221, 20191222, 20191223, 20191224, 20191225]; const getLast2Digits = e ={amp}gt; { // directly return strings if(typeof e === 'string') return e; // cast to string, then take last two characters and recast to number else return parseInt(String(e).substr(-2)); } console.log(last7days.map(getLast2Digits));