Как перетасовать данные JSON.parse?

Можно ли перетасовать результат анализа json из ajax?

$.ajax({
    method: 'GET',
    url: '/-pathSomething-/--ExampleOnly--',
    data: { sample: sample, sample: sample, sample: sample },
    success: function (result) {
        var ExamDislayQNChoiceML = JSON.parse(result);
    }
});

это выглядит так

Я не знаю, как это сделать, поэтому у меня мало кода для показа.

ожидаемый результат. случайно

{ QuesNo: 3, QuesID: 3, ... }
{ QuesNo: 1, QuesID: 1, ... }
{ QuesNo: 4, QuesID: 4, ... }
{ QuesNo: 2, QuesID: 2, ... }
{ QuesNo: 5, QuesID: 5, ... }

Что вы имеете в виду под перемешиванием?

Sudhir Ojha 16.02.2023 08:11

Подумайте о перетасовке массива. Если вам нужно отсортировать свойства объекта, вы, вероятно, могли бы перетасовать массив ключей объекта. А пока скопируйте и вставьте текст [javascript]fisher yates в поле поиска в верхней части этой страницы и нажмите клавишу ввода.

traktor 16.02.2023 08:20
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
2
56
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

это может сделать ваш запрос

let myJSON = {
  "name": "John",
  "age": 30,
  "city": "New York"
};

let myArray = Object.entries(myJSON);

for (let i = myArray.length - 1; i > 0; i--) {
  const j = Math.floor(Math.random() * (i + 1));
  [myArray[i], myArray[j]] = [myArray[j], myArray[i]];
}

myJSON = Object.fromEntries(myArray);

console.info(myJSON);

Это будет выход

{
  "city": "New York",
  "name": "John",
  "age": 30
}
Ответ принят как подходящий

используйте алгоритм тасования Фишера-Йейтса, вот ссылка на документацию: https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle и вот пример того, как использовать его для перемешивания массива объектов

$.ajax({
    method: 'GET',
    url: '/-pathSomething-/--ExampleOnly--',
    data: { sample: sample, sample: sample, sample: sample },
    success: function (result) {
        var ExamDislayQNChoiceML = JSON.parse(result);
        shuffleArray(ExamDislayQNChoiceML);
        console.info(ExamDislayQNChoiceML); // shuffled array
    }
});

function shuffleArray(array) {
    for (let i = array.length - 1; i > 0; i--) {
        const j = Math.floor(Math.random() * (i + 1));
        [array[i], array[j]] = [array[j], array[i]];
    }
}

Предполагая, что вы хотите перетасовать массив объектов вопросов: вы можете передать метод Math.random() в метод Array.sort(). Math.random() возвращает число с плавающей точкой от 0 до 1. Когда вы вычитаете 0,5 из результата Math.random(), функция сравнения Array.sort() возвращает случайное положительное или отрицательное значение, поэтому массив перемешивается:

const shuffleArray = arr => arr.sort(() => Math.random() - 0.5);
const shuffledArr = shuffleArray(arr);

Другие вопросы по теме