Для l oop nesting javascript найти ключ и вставить данные в массив - PullRequest
0 голосов
/ 26 мая 2020

var content = { "ops": [{ "insert": "\n" }, { "insert": { "image": "https://images.unsplash.com/photo-1561816544-21ecbffa09a3?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=400&fit=max&ixid=eyJhcHBfaWQiOjEzNzAzOX0" } }, { "insert": "\n\n\nd\nsaf\ndsf\nasd\nfa\ndf\n\n" }, { "insert": { "image": "https://images.unsplash.com/photo-1576638647312-cb3d62358ea1?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=400&fit=max&ixid=eyJhcHBfaWQiOjEzNzAzOX0" } }, { "insert": "\n" }] }
var users = [
    {
      img: 'https://images.unsplash.com/photo-1561816544-21ecbffa09a3?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=400&fit=max&ixid=eyJhcHBfaWQiOjEzNzAzOX0',
      username: 'Jhon',
    },
    {
      img: 'https://images.unsplash.com/photo-1559906006-6b8e462ec1cd?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&w=400&fit=max&ixid=eyJhcHBfaWQiOjEzNzAzOX0',
      username: 'Max',
    },
];

const debug = false;

for (i in content['ops']) {
    debug && console.log('outer loop');

    if (content['ops'][i]['insert']['image'] !== undefined) {
        debug && console.log('if not undefined');

        for (j in users) {
            debug && console.log('j user loop ' + j);

            debug && console.log(content['ops'][i]['insert']['image'] == users[j]['img']);

            var UserObj = [];
            if (content['ops'][i]['insert']['image'] == users[j]['img']) {
                    debug && console.log('if url true');

                    var UserObj = users[j];
                    debug && console.log(UserObj);

                    var insert = { insert: 'Photo by ' + UserObj['username'] }
                    content['ops'].splice(i, 0, insert)
                    debug && console.log(content);

            }
        }
    }
}
console.log(content);

Это код для пера. js вывод в формате JSON

Если вы посмотрите на объект содержимого, вы увидите что у него есть ключевые операции и операции в массиве. Мне нужно l oop через массив ops и найти объект с ключевой вставкой, у которого есть объект с ключевым изображением, а затем я хочу получить этот URL-адрес

ops: [
  {
    insert: {
      image: URL
    }
  }
]

У меня есть другой массив с URL и владелец изображения. (Я хочу указать владельца) Поэтому, когда я получу URL-адрес из операции, я сравню его с массивом, имеющим объекты person. Массив похож на

user = [
  {
    img: URL,
    username: ....,
  },
  {
    img: URL,
    username: ....,
  }
]

Итак, теперь я добавлю объект под объектом, который имеет img в ops Итак, ops - это массив, который я использовал array.splice, как я нашел в StackOverflow.

Но теперь все в порядке. У меня проблема при этом, если я ошибаюсь или не хватает некоторых знаний или кодирую их, пожалуйста, сообщите мне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...