#javascript #arrays #object #replace #find
#javascript #массивы #объект #заменить #Найти
Вопрос:
Что мне нужно сделать, это заменить число на имя на основе данных в массиве или объекте. Я знаю, как это сделать в PHP.
Это PHP-код:
<?php
$array1 = array('111', '222', '333');
$array2 = array('john','adam','mike');
echo $array2[array_search('222', $array1)];
http://sandbox.onlinephpfunctions.com/code/599c839dccf5b3d9101cec2a45d14fc4bce258b1
И то, что мне нужно, это то же самое в JavaScript.
var numbers = ['111', '222', '333'];
var names = ['john','adam','mike'];
var something['222']= .... ?
Комментарии:
1. Можете ли вы отредактировать, чтобы подробнее описать свою проблему? Как числа соотносятся с именами?
2. Я хочу попросить ‘222’ и вернуть ‘adam’ взамен
Ответ №1:
var numbers = ['111', '222', '333'];
var names = ['john','adam','mike'];
function rep (val) {
let i = numbers.indexOf(val)
return names[i]
}
Ответ №2:
Похоже, вам нужно создать сопоставление чисел с именами. У вас есть несколько вариантов, но самым коротким будет с reduce
:
const converted = array1.reduce(( acc,curr,index) => ({...acc, [curr]:array2[index]}), {})
const numbers = ['111', '222', '333'];
const names = ['john','adam','mike'];
const converted = numbers.reduce(( acc,curr,index) => ({...acc, [curr]:names[index]}), {})
console.log(converted['222']) // -> 'adam'
Комментарии:
1. Привет, Уилл, спасибо, это тоже работает, но ответ «Разработчик кода» был для меня проще. Спасибо за вклад