Подскажите, пожалуйста, как можно реализовать замену числовых значений в массиве не затрагивая строковые значения на javascript? Пробовал регуляркой с replace не получается. Заранее спасибо!
с этого массива значения
["160.0", "438.0", "200.0.0", "-80.0", "80.0", "180.0"]
подставить в этот
["M", "260.0", "438.0", "l", "167.0.0", "-80.0", "80.0", "H", "180.0", "Z"]
Если менять попросту по очереди будет как-то так :
const dontTouch = ['M', 'L', 'l', 'H', 'h', 'V', 'C', 'c', 'S', 'Q', 'q', 'T', 'A', 'Z', 'z'],
arrNumbers = ["160.0", "438.0", "200.0.0", "-80.0", "80.0", "180.0"],
arr = ["M", "260.0", "438.0", "l", "167.0.0", "-80.0", "80.0", "H", "180.0", "Z"],
replace = (a, r) => a.map(e => {
if (~dontTouch.indexOf(e)) return e
const v = r[0]
r.shift()
return v
})
console.log(replace(arr, arrNumbers))
ПС: Должно быть так ?
Насколько я понял, вам нужно оставить неизменными элементы, в которых используются буквы. Также порядок элементов не должен измениться. Вот вариант фукнции, модифицирующей второй переданный массив:
function replaceCoords(sourceArray, targetArray) {
const digitsRegExp = /[\d-]/;
let j = 0;
targetArray.forEach((item, i) => {
if (digitsRegExp.test(item[0])) {
targetArray[i] = sourceArray[j];
j++;
}
});
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Задача следующая: поставить затемнение на экран при нажатии на кнопку и обратно убирать затемнение при повторном нажатии
Есть расширение, в нем есть такой кодЗахожу в консоль - пустота