Поиск и замена — Java Script / jquery

#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. Привет, Уилл, спасибо, это тоже работает, но ответ «Разработчик кода» был для меня проще. Спасибо за вклад