2016-08-08 5 views
-2

У меня есть ключевые пары значений, как:.значение ключа пары на основе другого массива

var x={1:Car, 
2: Cycle, 
3:John 
} 

Это ответ приходит из JSON [объект Object] У меня есть массив, как: вар обр = [1,3 , 2] Я хочу сортировать х как обр. Порядок должен быть: {1: Автомобиль, 3: Джон, 2: Цикл}

В javascript, как этого достичь.

+4

Javascript не гарантирует порядок ключей в объекте. Таким образом, вы не можете сортировать их. Вы можете сортировать только _arrays_. – Arnauld

+0

Вы можете объяснить логику порядка. по возрастанию или по убыванию –

+1

@Arnauld верен, но если вы используете 'console.log (x)', вы получите свойства в алфавитном порядке. Почему вы хотите каким-либо образом сортировать ключи объекта? Нет смысла, даже если бы вы могли. –

ответ

2

Вам не нужно сортировать их, просто создайте новый пустой массив и заполните его, получив значения arr и используя их в качестве индекса x.

var x = { 
    1: 'Car', 
    2: 'Cycle', 
    3: 'John' 
}; 
var arr = [1, 3, 2]; 

var output = []; 
arr.forEach(function(item){ 
    output.push(x[item]); 
}); 
console.log(output); 

Fiddle.

-1
var order = function(obj, arr) { 
    var temp = {}; 
    for (var i = 0; i < arr.length; i++) { 
     temp[i] = obj[arr[i]]; 
    } 
    return temp; 
} 
var x = { 
    1: "Car", 
    2: "Cycle", 
    3: "John" 
} 
var arr = [1, 3, 2] 
x = order(x, arr); 
console.log(x); 
+0

https://jsfiddle.net/beshoysemsem/wz6e0k41/ –

+0

Хотя этот фрагмент кода может решить вопрос, [включая объяснение] (// meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) действительно помогает улучшить качество вашего сообщения. Помните, что вы отвечаете на вопрос читателей в будущем, и эти люди могут не знать причин вашего предложения кода. Также попробуйте не толковать код с пояснительными комментариями, что уменьшает читаемость кода и объяснений! –

Смежные вопросы