Вопросы по тегу: object

(15)

Kotlin: разница между объектом и сопутствующим объектом в классе

В чем разница между объектом и сопутствующим объектом в классе в kotlin?Пример:class MyClass { object Holder { //something } companion object { //something } } Я уже читал, что сопутствующий объект должен использоваться, если содержащие параметры/методы тесно связаны с его классом.Но почему в классе также можно объявить обычный объект? Потому что он ведет себя точно так же, как компаньон, но у него должно быть имя.Есть ли разница в его "статическом" (я со стороны Java) жизненном цикле?
P

Poweranimal

5 лет назад

Ответов: 6

Добавить свойство в массив объектов

У меня есть массив объектов, как показано нижеObject {Results:Array[2]} Results:Array[2] [0-1] 0:Object id=1 name: "Rick" 1:Object id=2 name:'david' Я хочу добавить еще одно свойство с именем Active к каждому элементу этого массива объектов.Окончательный результат должен быть следующим.Object {Results:Array[2]} Results:Array[2] [0-1] 0:Object id=1 name: "Rick" Active: "false" 1:Object id=2 name:'david' Active: "false" Can someone please let me know how to achieve this.
P

Patrick

5 лет назад

Ответов: 7

Как обновить «массив объектов» с помощью Firestore?

Сейчас я пробую Firestore, и я застрял на очень простом: «обновление массива (также известного как поддокумент)».Моя структура БД очень проста. Например:proprietary: "John Doe", sharedWith: [ {who: "first@test.com", when:timestamp}, {who: "another@test.com", when:timestamp}, ], Я пытаюсь (безуспешно) протолкнуть новые записи в массив объектов shareWith.Пробовал:// With SET firebase.firestore() .collection('proprietary') .doc(docID) .set( { sharedWith: [{ who: "third@test.com", when: new Date() }] }, { merge: true } ) // With UPDATE firebase.firestore() .collection('proprietary') .doc(docID) .update({ sharedWith: [{ who: "third@test.com", when: new Date() }] }) Ничего не работает. Эти запросы перезаписывают мой массив.Ответ может быть простым, но я не смог его найти ...
n

nerotulip

4 года назад

Ответов: 15

Элегантный способ проверить, существует ли вложенный ключ в dict?

Есть ли более читаемый способ проверить, существует ли ключ, скрытый в dict, без независимой проверки каждого уровня?Допустим, мне нужно получить это значение в закопанном объекте (пример взят из Викиданных):x = s['mainsnak']['datavalue']['value']['numeric-id'] Чтобы убедиться, что это не закончится ошибкой времени выполнения, необходимо либо проверить каждый уровень следующим образом:if 'mainsnak' in s and 'datavalue' in s['mainsnak'] and 'value' in s['mainsnak']['datavalue'] and 'nurmeric-id' in s['mainsnak']['datavalue']['value']: x = s['mainsnak']['datavalue']['value']['numeric-id'] Другой способ, который я могу придумать для решения этой проблемы, - это обернуть это в конструкцию try catch, которая, как мне кажется, также довольно неудобна для такой простой задачи.Ищу что-то вроде:x = exists(s['mainsnak']['datavalue']['value']['numeric-id']) , который возвращает True, если существуют все уровни.
l

loomi

5 лет назад

Ответов: 15

ключ доступа и значение объекта с помощью * ngFor

Я немного запутался в том, как получить ключ и значение объекта в angular2 при использовании * ngFor для итерации по объекту. Я знаю, что в angular 1.x есть синтаксис вроде ng-repeat = "(ключ, значение) в демонстрации" но я не знаю, как сделать то же самое в angular2. Я пробовал нечто подобное, но безуспешно: {{key}} demo = { 'key1': [{'key11': 'value11'}, {'key12': 'value12'}], 'key2': [{'key21': 'value21'}, {'key22': 'value22'}], } Вот plnkr с моей попыткой: http://plnkr.co/edit/mIj619FncOpfdwrR0KeG?p=previewКак я могу получить key1 и key2 динамически, используя * ngFor? После тщательного поиска я нашел идею использования каналов, но не знаю, как это сделать. Есть ли встроенный канал для того же в angular2?
P

Pardeep Jain

6 лет назад

Ответов: 20

Как выполнить итерацию (ключи, значения) в JavaScript?

У меня есть словарь форматаdictionary = {0: {object}, 1:{object}, 2:{object}} Как я могу перебирать этот словарь, делая что-то вродеfor ((key, value) in dictionary) { //Do stuff where key would be 0 and value would be the object }
n

nbroeking

6 лет назад

Ответов: 11

Вставить или обновить объект в JavaScript

Я пытаюсь создать объект на JavaScript, но свойства обновлены или созданы в зависимости от того, существует ли идентификатор продукта. Имею:var model = []; $('.glyphicon-plus').click(function() { var product_id = $('#productSelect').val(); var size_id = $('#sizeSelect').val(); var colour_id = $('#colourSelect').val(); var quantity = $('#quantity').val(); if (i = subFilter(model, "product_id", product_id) !== false) { if (i = subFilter(model, "size_id", size_id) !== false) { if (i = subFilter(model, "colour_id", colour_id) !== false) { console.log(model); model.i.quantity = quantity; } } } model.push({ product_id: product_id, size_id: size_id, colour_id: colour_id, quantity: quantity }); subFilter(model, "product_id", product_id); console.log(model) }); function subFilter(object, paramName, paramValue) { $.each(object, function(i, v) { if (v[paramName] == paramValue) { return i; } }); } Но я получаю: Uncaught TypeError: Невозможно установить для свойства «количество» значение undefined Как я могу правильно построить этот объект, вставив новую «запись» или обновив, если она уже существует?
i

imperium2335

6 лет назад

Ответов: 4

Декодирование JSON: смешанные типы - недопустимая синтаксическая ошибка

Это мой пример JSON {"tasks" : [ { "id" : "27604_11", "quality" : "A4", "position" : "183567", "profile" : "https:\/\/example.com\/gallery\/profiles\/8764_2.jpg", "type" : "image", "valid" : "24 days", "member" : { "carrier" : null, "zone" : null, "offd" : null }, "taketime" : "4minutes", "listeners" : { "count" : 0 }, "message" : "stay prepared", "level" : "High" }, { "id" : "27604_12", "quality" : "B3", "position" : "183569", "profile" : "https:\/\/example.com\/gallery\/profiles\/8232_1.jpg", "type" : "image", "valid" : "11 days", "member" : { "carrier" : null, "zone" : null, "offd" : null }, "taketime" : "7minutes", "listeners" : { "count" : 2 }, "message" : "ready", "level" : "High" }, { "id" : "73754_35", "quality" : "A3", "position" : "13542", "profile" : "https:\/\/example.com\/gallery\/profiles\/1235_5.jpg", "type" : "image", "valid" : "5 days", "member" : { "carrier" : null, "zone" : null, "offd" : null }, "taketime" : "22minutes", "listeners" : { "count" : 0 }, "message" : "Good", "level" : "Normale" } ], "start_poz" : "36774263743" } {"tasks" : [ { "id" : "27604_11", "quality" : "A4", "position" : "183567", "profile" : "https:\/\/example.com\/gallery\/profiles\/8764_2.jpg", "type" : "image", "valid" : "24 days", "member" : { "carrier" : null, "zone" : null, "offd" : null }, "taketime" : "4minutes", "listeners" : { "count" : 0 }, "message" : "stay prepared", "level" : "High" }, { "id" : "27604_12", "quality" : "B3", "position" : "183569", "profile" : "https:\/\/example.com\/gallery\/profiles\/8232_1.jpg", "type" : "image", "valid" : "11 days", "member" : { "carrier" : null, "zone" : null, "offd" : null }, "taketime" : "7minutes", "listeners" : { "count" : 2 }, "message" : "ready", "level" : "High" }, { "id" : "73754_35", "quality" : "A3", "position" : "13542", "profile" : "https:\/\/example.com\/gallery\/profiles\/1235_5.jpg", "type" : "image", "valid" : "5 days", "member" : { "carrier" : null, "zone" : null, "offd" : null }, "taketime" : "22minutes", "listeners" : { "count" : 0 }, "message" : "Good", "level" : "Normale" } ], "start_poz" : "36774263743" } {"tasks" : [ { "id" : "27604_11", "quality" : "A4", "position" : "183567", "profile" : "https:\/\/example.com\/gallery\/profiles\/8764_2.jpg", "type" : "image", "valid" : "24 days", "member" : { "carrier" : null, "zone" : null, "offd" : null }, "taketime" : "4minutes", "listeners" : { "count" : 0 }, "message" : "stay prepared", "level" : "High" }, { "id" : "27604_12", "quality" : "B3", "position" : "183569", "profile" : "https:\/\/example.com\/gallery\/profiles\/8232_1.jpg", "type" : "image", "valid" : "11 days", "member" : { "carrier" : null, "zone" : null, "offd" : null }, "taketime" : "7minutes", "listeners" : { "count" : 2 }, "message" : "ready", "level" : "High" }, { "id" : "73754_35", "quality" : "A3", "position" : "13542", "profile" : "https:\/\/example.com\/gallery\/profiles\/1235_5.jpg", "type" : "image", "valid" : "5 days", "member" : { "carrier" : null, "zone" : null, "offd" : null }, "taketime" : "22minutes", "listeners" : { "count" : 0 }, "message" : "Good", "level" : "Normale" } ], "start_poz" : "36774263743" } А это php:/ ** Пропуск кода json_last_error () .. Ошибка такая: JSON_ERROR_SYNTAX ** /$tasks = $json["tasks"]; foreach ($tasks as $key => $value) { echo ""; echo "".$value['id'].""; echo "".$value['quality'].""; echo "".$value['position'].""; echo "".$value['profile'].""; echo "".$value['type'].""; echo "".$value['valid'].""; echo "".$value['member']['carrier'].""; echo "".$value['member']['zone'].""; echo "".$value['member']['offd'].""; echo "".$value['taketime'].""; echo "".$value['listeners']['count'].""; echo "".$value['taketime'].""; echo "".$value['message'].""; echo "".$value['level'].""; echo ""; } ?> Собственно, ошибка не позволяет выполнить код с JSON. Но если вы используете только 1 часть JSON, например:{"tasks" : [ { "id" : "27604_11", "quality" : "A4", "position" : "183567", "profile" : "https:\/\/example.com\/gallery\/profiles\/8764_2.jpg", "type" : "image", "valid" : "24 days", "member" : { "carrier" : null, "zone" : null, "offd" : null }, "taketime" : "4minutes", "listeners" : { "count" : 0 }, "message" : "stay prepared", "level" : "High" }, { "id" : "27604_12", "quality" : "B3", "position" : "183569", "profile" : "https:\/\/example.com\/gallery\/profiles\/8232_1.jpg", "type" : "image", "valid" : "11 days", "member" : { "carrier" : null, "zone" : null, "offd" : null }, "taketime" : "7minutes", "listeners" : { "count" : 2 }, "message" : "ready", "level" : "High" }, { "id" : "73754_35", "quality" : "A3", "position" : "13542", "profile" : "https:\/\/example.com\/gallery\/profiles\/1235_5.jpg", "type" : "image", "valid" : "5 days", "member" : { "carrier" : null, "zone" : null, "offd" : null }, "taketime" : "22minutes", "listeners" : { "count" : 0 }, "message" : "Good", "level" : "Normale" } ], "start_poz" : "36774263743" } тогда РАБОТАЕТ!Не могли бы вы указать мне, в чем моя ошибка с синтаксисом ... и ... может быть, вы также поможете мне понять, как получить значение start_poz с каждым циклом получения значений из задач Массив?Большое спасибо и С Новым годом! ;)
O

Oria

6 лет назад

Ответов: 3

Функция базового класса указанного класса не представлена ​​в другом проекте

Я использую базовый класс фильтра AForge для реализации моих собственных фильтров. Так что я делаюpublic sealed class SomeFilter : BaseInPlaceFilter2 { ... } Когда я создаю новый экземпляр фильтра в другом проекте (в данном случае консольном проекте), базовые функции не отображаются, т.е. то, что я должен сделать, этоSomeFilter s = new SomeFilter(); Bitmap bmp = new Bitmap(); ... s.ApplyInPlace(bmp); s.ApplyInPlace (bmp) является производным от базового класса. Однако при создании экземпляра он недоступен.Методом проб и ошибок я обнаружил, что мне нужно включить AForge в раздел using консольного проекта в дополнение к классу фильтра. Однако я подумал, что когда я наследую от базового класса, базовые функции также включены? Думаю, я не совсем понимаю здесь систематическую процедуру.
J

JoeyD

6 лет назад

Ответов: 1

Объяснение Java для вывода кода с использованием конструкторов и "this"

public class potpie { public int month; public int day; public int year; public static void main(String[] args) { potpie potObject = new potpie(4,5,6); } public potpie(int m, int d, int y){ month = m; day = d; year = y; System.out.printf("The constructor for this is %s\n", this); } public String toString(){ return String.format("%d/%d/%d", month, day, year); } } Я смотрю видеоурок по java, и он пишет этот код. Но я не понимаю его объяснения, почему он выводитсяThe constructor for this is 4/5/6 Я просто не понимаю, зачем используется метод toString?
H

Hello

6 лет назад

Ответов: 4

Как определить столкновения для x и y отдельно?

В этой функции у меня есть обнаружение столкновений между мячом и лопаткой и счет (и другие вещи, которые не имеют отношения к этому вопросу). Когда мяч ударяется о лопасть, он отскакивает в противоположном направлении. Это отлично работает для левой стороны лопасти, но если мяч попадает сверху или снизу, он как бы скользит, и счет подскакивает.def Objects (paddle,ball,hits,font,black): if ball.BallRect.colliderect(paddle.PaddleRect): ball.vx *= -1 score_text = font.render(f"Score: " + str(hits + 1),True, black) temp += 1 else: score_text = font.render(f"Score: " + str(hits),True, black) window.blit(score_text,(20,20)) return temp
T

Tinko

год назад

Ответов: 1

Объединить связанные объекты в один массив объектов? (javascript)

У меня есть некоторые данные о пользователях и разрешениях, которые запрашиваются из моей базы данных. Я хотел бы, чтобы объект доступа для каждого человека был связан с объектом каждого пользователя, чтобы, когда я просматриваю массив в своем приложении на странице разрешений пользователя, все данные были легко доступны.К счастью, мои данные, которые необходимо объединить, находятся в порядке индексации.Вопрос: Как мне соединить объект доступа с объектом пользователя на основе Id.Моя попытка: const data = permissions.map((perm, pIndex) => { return users.map((user, uIndex) => { return pIndex === uIndex; }); }); Мои данные: user = [{ firstName: "Стив", возраст: 22, _id: "789" }, { fistName: "bill", возраст: 18, _id: "456" }, { firstName: "jeff", возраст: 15, _id: "123" } ] разрешения = [{ userId: "789", доступ: ["321", "654"] }, { идентификатор пользователя: "456", доступ: ["654"] }, { userId: "123", доступ: ["321", "654", "987"] }, ] Желаемый результат: user = [{ firstName: "Стив", возраст: 22, _id: "789", access: ["321", "654"] }, { fistName: "bill", возраст: 18, _id: "456", access: ["654"] }, { firstName: "jeff", возраст: 15, _id: "123", access: ["321", "654", "987"] } ] Мой текущий вывод имеет неопределенные значения, смешанные в массиве, как: [{obj}, undefined, undefined], [undefined, {obj}, undefined], [undefined, undefined, {obj}]. Спасибо!
t

twominds

год назад

Ответов: 3

Добавить json-файл в объект и сохранить в список массивов

Я пытаюсь получить данные из json файла и сохранить их как объекты, а затем поместить в различные arrylist, я застрял на том, что не могу получить "A320" в obejcts, "type_ratings": [ "A320" ]List Allcrews = new ArrayList<>(); List pilotsList = new ArrayList<>(); List Cabincrews = new ArrayList<>();` public void loadCrewData(Path p) throws DataLoadingException{ try { BufferedReader reader = Files.newBufferedReader(p); String jsonStr = ""; String line = ""; while ((line=reader.readLine()) !=null) { jsonStr =jsonStr+line; } System.out.println ("Pilots Informations: "); JSONObject jsonObj = new JSONObject(jsonStr); JSONArray pilots = jsonObj.getJSONArray("pilots"); for(int j =0; j
J

Jiayao Wang

год назад

Ответов: 1

Пытаюсь сделать фильтр для приложения со списком дел на Javascript, но не получается

У меня есть список дел, и он работает просто отлично, но я пытаюсь отфильтровать его, но у меня возникают трудности. В принципе, каждая задача - это объект, у каждого объекта есть свойства text, id и checked. Я хочу, например, отображать только те задачи, которые не отмечены, когда я нажимаю кнопку Active.Надеюсь, вы сможете помочь. Вот изображение для большей ясности: /* Selectors */ const switcher = document.querySelector(' input[Type="checkbox"]'); const body = document.body; const formT = document.querySelector(`[data-new-todo-form]`) const inputT = document.querySelector(`[data-new-todo-input]`) const todoList = document.getElementById('todo-list'); const filterList = document.querySelector('.controls-list') /* array that holds tasks */ let tasks = []; /* EVENT LISTENERS */ switcher.addEventListener('change', (e) => { if(e.target.checked) { body.classList.replace('light', 'dark') } else { body.classList.replace('dark', 'light') } }) formT.addEventListener('submit', e => { e.preventDefault() let text = inputT.value.trim(); if(text !== '') { addTask(text); inputT.value = ''; inputT.focus(); } }) todoList.addEventListener('click', e => { if (e.target.classList.contains('js-tick')) { const itemKey = e.target.parentElement.dataset.key; toggleDone(itemKey); } if (e.target.classList.contains('delete')) { const itemKey = e.target.parentElement.dataset.key; deleteTodo(itemKey); counter(); } }); document.addEventListener('DOMContentLoaded', () => { const ref = localStorage.getItem('tasksRef'); if (ref) { tasks = JSON.parse(ref); tasks.forEach(task => { renderTodo(task); counter(); }); } }); /* FUNCTIONS */ /* create a todo object */ const addTask = (text) => { const todoTask = { text, checked: false, id: Date.now(), } tasks.push(todoTask); renderTodo(todoTask); }; const renderTodo = (todoTask)=> { localStorage.setItem('tasksRef', JSON.stringify(tasks)); const item = document.querySelector(`[data-key='${todoTask.id}']`); if (todoTask.deleted) { // remove the item from the DOM item.remove(); return } const isChecked = todoTask.checked ? 'done': ''; const node = document.createElement('li') node.setAttribute('class', `todo-item ${isChecked}`); node.setAttribute('data-key', todoTask.id); node.innerHTML = ` ${todoTask.text} ` ; todoList.append(node); if (item) { node.replaceWith(item) } else { todoList.append(node) } counter(); } const toggleDone = (key) => { const index = tasks.findIndex(task=> task.id === Number(key)); tasks[index].checked = !tasks[index].checked; renderTodo(tasks[index]); } const deleteTodo = (key) => { const index = tasks.findIndex(item => item.id === Number(key)); const todoTask = { deleted: true, ...tasks[index] }; tasks = tasks.filter(item => item.id !== Number(key)); renderTodo(todoTask); } const counter = () => { const itemsCounter = tasks.filter(task=> !task.checked) const count = document.getElementById('todosLeft'); const counterString = itemsCounter.length === 1 ? 'item' : 'items' count.innerText = `${itemsCounter.length} ${counterString} left` } Здесь HTML: Todo items left All Active Completed Clear Completed Drag and drop to reorder list
i

inKABusser

год назад

Ответов: 1

Обратная итерация в объекте jQuery?

var test_data = {'hr' : [1, 'Час'], 'min' : [60, 'Минута'], 's' : [3600, 'Second']} Сейчас, пока я выполняю итерацию, я хочу получить 's' первым $.each(test_data, function(i, j) { // Мне нужно сначала получить 's' }); Я пробовал test_data.revers(), но это не работает. Есть решение?
s

softProcess

год назад

Ответов: 2

2022 WebDevInsider