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

(83)

Добавить пару ключ-значение ко всем объектам в массиве

Я хотел добавить параметр ключ:значение ко всем объектам в массиве.например: var arrOfObj = [{name: 'eve'},{name:'john'},{name:'jane'}]; Теперь я хотел добавить новый параметр isActive ко всем объектам, чтобы результирующий массив выглядел так.например: [{ name: 'eve', isActive: true }, { name: 'john', isActive: true }, { name: 'jane', isActive: true }] Я всегда могу прокрутить массив и вставить пару ключ-значение. Но мне было интересно, есть ли лучший способ сделать это
S

Shrujan Shetty

5 лет назад

Ответов: 12

Удалить дубликаты из массива

У меня есть массив объектов, который выглядит так:var array = [ {id:123, value:"value1", name:"Name1"}, {id:124, value:"value2", name:"Name1"}, {id:125, value:"value3", name:"Name2"}, {id:126, value:"value4", name:"Name2"} ... ]; Как видите, некоторые имена повторяются. Я хочу получить новый массив только с именами, но если какое-то имя повторяется, я не хочу добавлять его снова. Я хочу этот массив:var newArray = ["Name1", "Name2"]; Я пытаюсь сделать это с помощью map:var newArray = array.map((a) => { return a.name; }); Но проблема в том, что это возвращает:newArray = ["Name1", "Name1", "Name2", "Name2"]; Как я могу установить какое-то условие внутри map, чтобы он не возвращал уже существующий элемент? Я хочу сделать это с помощью map или какой-либо другой функции ECMAScript 5 или ECMAScript 6.
s

snoopy25

5 лет назад

Ответов: 17

Причудливый способ размещения двумерного массива?

В проекте кто-то нажал эту строку:double (*e)[n+1] = malloc((n+1) * sizeof(*e)); Который предположительно создает двумерный массив из (n+1)*(n+1) двойников.Предположительно, я говорю, потому что до сих пор никто из тех, кого я спрашивал, не мог сказать мне, что именно это делает, откуда это взялось или почему это должно работать (что якобы работает, но я м еще не купил).Возможно, я упускаю что-то очевидное, но я был бы признателен, если бы кто-нибудь объяснил мне строку выше. Потому что лично я чувствовал бы себя намного лучше, если бы мы использовали то, что действительно понимаем.
U

User1291

6 лет назад

Ответов: 3

Вывод всего массива: console.log и console.dir выводят "... еще NUM элементов]"

Я пытаюсь зарегистрировать длинный массив, чтобы быстро скопировать его в свой терминал. Однако, если я попытаюсь зарегистрировать массив, он будет выглядеть так:['item', 'item', >>more itemsКак я могу зарегистрировать весь массив, чтобы я мог очень быстро его скопировать?
A

Anthony

5 лет назад

Ответов: 5

Удаление объекта из массива в Swift 3

В моем приложении я добавил один объект в массив при выборе ячейки и отменил выбор и удалил объект при повторном выборе ячейки. Я использовал этот код, но выдает ошибку.extension Array { func indexOfObject(object : AnyObject) -> NSInteger { return (self as NSArray).indexOfObject(object) } mutating func removeObject(object : AnyObject) { for var index = self.indexOfObject(object); index != NSNotFound; index = self.indexOfObject(object) { self.removeAtIndex(index) } } } class MyViewController: UITableViewController { var arrContacts: [Any] = [] var contacts: [Any] = [] func tableView(_ tableView: UITableView, didDeselectRowAt indexPath: IndexPath) { arrContacts.removeObject(contacts[indexPath.row]) } } У меня выдает 2 такие ошибки:C-style for statement has been removed in Swift 3 Value of type '[Any]' has no member 'removeObject'
K

Kamlesh Shingarakhiya

5 лет назад

Ответов: 13

Как я могу просмотреть значения перечисления для отображения в переключателях?

Как правильно перебирать литералы перечисления в TypeScript?(сейчас я использую TypeScript 1.8.1.)У меня есть следующее перечисление:export enum MotifIntervention { Intrusion, Identification, AbsenceTest, Autre } export class InterventionDetails implements OnInit { constructor(private interService: InterventionService) { let i:number = 0; for (let motif in MotifIntervention) { console.log(motif); } } Результат отображается в виде списка0 1 2 3 Intrusion, Identification, AbsenceTest, Autre Мне нужно только четыре итерации в цикле, поскольку в перечислении всего четыре элемента. Я не хочу иметь 0 1 2 и 3, которые кажутся порядковыми номерами перечисления.
A

Anthony Brenelière

5 лет назад

Ответов: 1

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

У меня есть массив объектов, как показано ниже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

Как отфильтровать массив из всех элементов другого массива

Я хотел бы понять, как лучше всего отфильтровать массив от всех элементов другого. Я пробовал использовать функцию фильтра, но мне не пришло в голову, как присвоить ей значения, которые я хочу удалить. что-то вроде:var array = [1,2,3,4]; var anotherOne = [2,4]; var filteredArray = array.filter(myCallback); // filteredArray should now be [1,3] function myCallBack(){ return element ! filteredArray; //which clearly can't work since we don't have the reference в случае, если функция фильтра бесполезна, как бы вы это реализовали? Edit: я проверил возможный повторяющийся вопрос, и он может быть полезен для тех, кто легко разбирается в javascript. Ответ, отмеченный как хороший, упрощает задачу.
K

Koop4

6 лет назад

Ответов: 21

Есть ли способ использовать map () в массиве в обратном порядке с помощью javascript?

Я хочу использовать функцию map () в массиве javascript, но я бы хотел, чтобы она работала в обратном порядке.Причина в том, что я визуализирую составные компоненты React в проекте Meteor и хочу, чтобы элемент верхнего уровня отображался первым, а остальные загружали изображения ниже.var myArray = ['a', 'b', 'c', 'd', 'e']; myArray.map(function (el, index, coll) { console.log(el + " ") }); распечатывает a b c d e, но я бы хотел, чтобы была mapReverse (), которая напечатала e d c b aЕсть предложения?
R

Robin Newhouse

6 лет назад

Ответов: 13

Как мне отфильтровать массив с помощью TypeScript в Angular 2?

ng-2 наследование родительско-дочерних данных было для меня проблемой.То, что кажется прекрасным практическим решением, - это фильтрация моего полного массива данных в массив, состоящий только из дочерних данных, на которые ссылается единственный родительский идентификатор. Другими словами: наследование данных становится фильтрацией данных по одному родительскому идентификатору.В конкретном примере это может выглядеть так: фильтрация массива книг для отображения только книг с определенным store_id.импорт {Component, Input} из 'angular2 / core'; экспортный класс Store { идентификационный номер; имя: строка; } export class Book { идентификационный номер; shop_id: number; название: строка; } @Компонент({ селектор: 'книга', шаблон: ` Эти книги должны иметь этикетку магазина: {{shop.id}}: {{book.title}} ` ]) export class BookComponent { @Вход() магазин: Магазин; общественные книги = КНИГИ; // «Ошибка: книги не определены» // (также не работает, когда books.filter вызывается как: this.books.filter // «Ошибка: не удалось прочитать свойство 'filter' неопределенного значения») var booksByStoreID = books.filter (book => book.store_id === this.store.id) } var BOOKS: Книга [] = [ {'id': 1, 'store_id': 1, 'name': 'Dichtertje'}, {'id': 2, 'store_id': 1, 'name': 'De uitvreter'}, {'id': 3, 'store_id': 2, 'name': 'Titaantjes'} ]; TypeScript для меня новичок, но я думаю, что близок к тому, чтобы здесь все заработало.(Также можно перезаписать исходный массив книг, а затем использовать * ngFor = "# book of books".)РЕДАКТИРОВАТЬ Подхожу ближе, но все равно выдает ошибку.// изменения сверху: импортировать {Component, Input, OnInit} из angular2 / core; // .. опущено // измененный компонент: класс экспорта BookComponent реализует OnInit { @Вход() магазин: Магазин; общественные книги = КНИГИ; // добавляем данные в конструктор, необходимый для ngInit // "ИСКЛЮЧЕНИЕ: для массива нет поставщика!" конструктор( booksByStoreID: Book []; ) {} ngOnInit () { this.booksByStoreID = this.books.filter ( book => book.store_id === this.store.id); } } // .. опущено
C

Code-MonKy

6 лет назад

Ответов: 3

Объявить массив в TypeScript

У меня проблемы с объявлением или использованием логического массива в Typescript, не уверен, что неверно. Я получаю ошибку undefined. Должен ли я использовать синтаксис JavaScript или объявить новый объект Array?Какой из них является правильным способом создания массива?private columns = boolean[]; private columns = []; private columns = new Array(); Как мне инициализировать все значения как ложные?Как мне получить доступ к значениям, могу ли я получить к ним доступ, например, columns [i] = true;..?
u

user3325783

5 лет назад

Ответов: 5

Как использовать необязательную цепочку с массивом или функциями?

Я пытаюсь использовать необязательную цепочку с массивом вместо объекта, но не знаю, как это сделать:Вот что я пытаюсь сделать myArray.filter (x => x.testKey === myTestKey)? [0]. Также пробую аналогичную вещь с функцией:let x = {a: () => {}, b: null} console.log(x?b()); Но он выдает такую ​​ошибку, как использовать его с массивом или функцией.
B

Black Mamba

2 года назад

Ответов: 4

Массив TypeScript в строковый литерал

В настоящее время у меня есть как массив строк, так и тип объединения строкового литерала, содержащий одинаковые строки:const furniture = ['chair', 'table', 'lamp']; type Furniture = 'chair' | 'table' | 'lamp'; Мне нужны оба в моем приложении, но я пытаюсь сохранить свой код СУХИМ. Так есть ли способ вывести одно из другого?Я в основном хочу сказать что-то вроде type Furniture = [любая строка в массиве мебели], чтобы не было повторяющихся строк.
D

Duncan Luk

5 лет назад

Ответов: 4

Vue JS возвращает данные [__ob__: Observer] вместо моего массива объектов

Я создал страницу, на которой хочу получить все свои данные из базы данных с помощью вызова API, но я тоже новичок в VueJS и Javascript, и я не знаю, где я ошибаюсь. Я проверил его с помощью Postman и получил обратно правильный JSON.Вот что я получаю:[__ob__: Observer] length: 0 __ob__: Observer {value: Array(0), dep: Dep, vmCount: 0} __proto__: Array Вот что я хочу:(140) [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, …] [0 … 99] [100 … 139] length: 140 __ob__: Observer {value: Array(140), dep: Dep, vmCount: 0} __proto__: Array Это мой файл шаблона Vue: Pigeons in the racing loft {{ pigeon.id }} export default { data(){ return{ pigeons: [], pigeon: { id: '', sex: '', color_id: '', pattern_id: '', user_id: '', loft_id: '', country: '', experience: '', form: '', fatique: '' }, pigeon_id: '' } }, created(){ this.fetchPigeons(); console.log(this.pigeons); // Here I got the observer data instead my array }, methods: { fetchPigeons(){ fetch('api/racingloft') .then(res => res.json()) .then(res => { console.log(res.data); // Here I get what I need this.pigeons = res.data; }) } } } Я тоже пробовал делать это с помощью axios, но это дало мне то же самое. Когда я консолью его с помощью метода, он дает мои данные, но снаружи он просто ничего не дает.
s

shawnest

3 года назад

Ответов: 12

Как я могу создать массив в Kotlin, как в Java, просто указав размер?

Как я могу создать массив, как в java?int A[] = new int[N]; Как это сделать в Котлине?
K

Kevin Mathew

6 лет назад

Ответов: 5

Как обновить «массив объектов» с помощью 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

Объекты недопустимы как дочерние объекты React. Если вы хотели отобразить коллекцию дочерних элементов, используйте вместо этого массив

Я настраиваю приложение React с бэкэндом Rails. Я получаю сообщение об ошибке «Объекты недопустимы в качестве дочерних элементов React (найдено: объект с ключами {id, name, info, created_at, updated_at}). Если вы хотели визуализировать коллекцию дочерних элементов, используйте вместо этого массив».Вот как выглядят мои данные:[ { "id": 1, "name": "Home Page", "info": "This little bit of info is being loaded from a Rails API.", "created_at": "2018-09-18T16:39:22.184Z", "updated_at": "2018-09-18T16:39:22.184Z" } ] Мой код:import React from 'react'; class Home extends React.Component { constructor(props) { super(props); this.state = { error: null, isLoaded: false, homes: [] }; } componentDidMount() { fetch('http://localhost:3000/api/homes') .then(res => res.json()) .then( (result) => { this.setState({ isLoaded: true, homes: result }); }, // error handler (error) => { this.setState({ isLoaded: true, error }); } ) } render() { const { error, isLoaded, homes } = this.state; if (error) { return ( Error: {error.message} ); } else if (!isLoaded) { return ( Loading... ); } else { return ( Mi Casa This is my house y'all! Stuff: {homes} ); } } } export default Home; Что я делаю не так?
i

iChido

3 года назад

Ответов: 29

Какая-нибудь оптимизация для произвольного доступа к очень большому массиву, когда значение в 95% случаев равно 0 или 1?

Возможна ли оптимизация для произвольного доступа на очень большом массиве (сейчас я использую uint8_t, и я спрашиваю, что лучше)uint8_t MyArray[10000000]; , когда значение в любой позиции в массиве равно 0 или 1 для 95% всех случаев, 2 в 4% случаев, между 3 и 255 в другой 1% случаев? Итак, есть ли что-нибудь лучше, чем массив uint8_t, чтобы использовать для этого? Необходимо как можно быстрее перебрать весь массив в случайном порядке, и это очень сильно сказывается на пропускной способности ОЗУ, поэтому при наличии нескольких потоков, выполняющих это одновременно для разных массивов, в настоящее время вся пропускная способность ОЗУ быстро насыщается.Я спрашиваю, потому что очень неэффективно иметь такой большой массив (10 МБ), когда на самом деле известно, что почти все значения, кроме 5%, будут либо 0, либо 1. Итак, когда 95% всех значений в массиве на самом деле потребуется только 1 бит вместо 8, это уменьшит использование памяти почти на порядок. Похоже, что должно быть решение с более эффективным использованием памяти, которое значительно снизило бы требуемую для этого полосу пропускания ОЗУ и, как результат, также было бы значительно быстрее при произвольном доступе.
J

JohnAl

4 года назад

Ответов: 13

Почему [NaN] .includes (NaN) возвращает true в JavaScript?

Мне известно, что NaN «странно» в JavaScript, то есть NaN === NaN всегда возвращает false, как описано здесь. Поэтому не следует проводить сравнения === для проверки NaN, а вместо этого использовать isNaN (..).Я был удивлен, обнаружив, что> [NaN].includes(NaN) true Это кажется непоследовательным. Почему такое поведение?Как вообще работает? Включает ли метод, специально проверяет isNaN?
Y

Yossi Vainshtein

10 месяцев назад

Ответов: 5

используйте Lodash для сортировки массива объектов по значению

Я пытаюсь отсортировать массив по значению «имя» (используя Lodash). Я использовал документы Lodash для создания решения ниже, однако .orderBy, похоже, вообще не влияет. Может ли кто-нибудь пролить свет на правильный способ сортировки массива?Массив символов[ { "id":25, "name":"Anakin Skywalker", "createdAt":"2017-04-12T12:48:55.000Z", "updatedAt":"2017-04-12T12:48:55.000Z" }, { "id":1, "name":"Luke Skywalker", "createdAt":"2017-04-12T11:25:03.000Z", "updatedAt":"2017-04-12T11:25:03.000Z" } ] Код функции var chars = this.state.characters; _.orderBy(chars, 'name', 'asc'); // Use Lodash to sort array by 'name' this.setState({characters: chars})
u

user4831663

5 лет назад

Ответов: 3

удалить первый элемент из массива и вернуть массив за вычетом первого элемента

var myarray = [«элемент 1», «элемент 2», «элемент 3», «элемент 4»]; // удаляет первый элемент массива и возвращает этот элемент. предупреждение (myarray.shift ()); // предупреждает "элемент 1" // удаляет последний элемент массива и возвращает этот элемент. оповещение (myarray.pop ()); // предупреждает "элемент 4" Как удалить первый массив, но вернуть массив за вычетом первого элемента В моем примере я должен получить «элемент 2», «элемент 3», «элемент 4» при удалении первого элемента
B

Brownman Revival

6 лет назад

Ответов: 6

Javascript ES6 / ES5 найти в массиве и изменить

У меня есть массив объектов. Хочу найти по какому-то полю, а потом поменять:var item = {...} var items = [{id:2}, {id:2}, {id:2}]; var foundItem = items.find(x => x.id == item.id); foundItem = item; Я хочу изменить исходный объект. Как? (Меня не волнует, будет ли это тоже в lodash)
u

user3712353

6 лет назад

Ответов: 9

Массивы декодирования Swift JSONDecode не работают, если декодирование одного элемента не удается

При использовании протоколов Swift4 и Codable у меня возникла следующая проблема - похоже, нет способа разрешить JSONDecoder пропускать элементы в массиве. Например, у меня такой JSON:[ { "name": "Banana", "points": 200, "description": "A banana grown in Ecuador." }, { "name": "Orange" } ] И Codable struct:struct GroceryProduct: Codable { var name: String var points: Int var description: String? } При декодировании этого jsonlet decoder = JSONDecoder() let products = try decoder.decode([GroceryProduct].self, from: json) Результат товаров пуст. Этого и следовало ожидать, поскольку второй объект в JSON не имеет ключа "points", а points не является необязательным в структуре GroceryProduct.Вопрос в том, как я могу разрешить JSONDecoder «пропускать» недопустимый объект?
K

Khriapin Dmitriy

4 года назад

Ответов: 16

Как удалить элемент из массива состояний?

История в том, что я смогу поместить Боба, Салли и Джека в коробку. Я тоже могу удалить из коробки. При снятии слота не остается.people = ["Bob", "Sally", "Jack"] Теперь мне нужно удалить, скажем, «Боб». Новый массив будет:["Sally", "Jack"] Вот мой компонент реакции:... getInitialState: function() { return{ people: [], } }, selectPeople(e){ this.setState({people: this.state.people.concat([e.target.value])}) }, removePeople(e){ var array = this.state.people; var index = array.indexOf(e.target.value); // Let's say it's Bob. delete array[index]; }, ... Здесь я покажу вам минимальный код, так как это еще не все (onClick и т. Д.). Ключевой частью является удаление, удаление, уничтожение «Боба» из массива, но removePeople () не работает при вызове. Любые идеи? Я смотрел на этот, но, возможно, я делаю что-то не так, поскольку использую React.
S

Sylar

6 лет назад

Ответов: 15

Что означает ключевое слово return внутри функции forEach?

$ ('кнопка'). Click (function () { [1, 2, 3, 4, 5] .forEach (function (n) { if (n == 3) { // он должен вырваться здесь и ни о чем не предупреждать после вернуть ложь } предупреждение (n) }) }) Нажми меня Мой вопрос: Почему по-прежнему предупреждает следующий номер, хотя я звоню , возвращаю? Точно так же: Игнорируйте приведенный ниже код и переходите к следующему элементу
T

Tân

6 лет назад

Ответов: 2

TypeScript enum to object array

I have an enum defined this way:export enum GoalProgressMeasurements { Percentage = 1, Numeric_Target = 2, Completed_Tasks = 3, Average_Milestone_Progress = 4, Not_Measured = 5 } However, I'd like it to be represented as an object array/list from our API like below:[{id: 1, name: 'Percentage'}, {id: 2, name: 'Numeric Target'}, {id: 3, name: 'Completed Tasks'}, {id: 4, name: 'Average Milestone Progress'}, {id: 5, name: 'Not Measured'}] Is there are easy and native way to do this or do I have to build a function that casts the enum to both an int and a string, and build the objects into an array?
A

AnimaSola

5 лет назад

Ответов: 23

How to generate range of numbers from 0 to n in ES2015 only?

I have always found the range function missing from JavaScript as it is available in python and others? Is there any concise way to generate range of numbers in ES2015 ?EDIT: MY question is different from the mentioned duplicate as it is specific to ES2015 and not ECMASCRIPT-5. Also I need the range to be starting from 0 and not specific starting number (though it would be good if that is there)
A

Aditya Singh

6 лет назад

Ответов: 15

Почему массивы Python медленные?

Я ожидал, что array.array будет быстрее, чем списки, поскольку массивы кажутся распакованными.Однако я получаю следующий результат:In [1]: импортировать массив В [2]: L = список (диапазон (100000000)) В [3]: A = array.array ('l', диапазон (100000000)) В [4]:% timeit sum (L) 1 цикл, лучшее из 3: 667 мс на цикл В [5]:% timeit sum (A) 1 петля, лучше всего 3: 1,41 с на петлю В [6]:% timeit sum (L) 1 цикл, лучшее из 3: 627 мс на цикл В [7]:% timeit sum (A) 1 петля, лучше всего 3: 1,39 с на петлю В чем может быть причина такой разницы?
V

Valentin Lorentz

6 лет назад

Ответов: 4

Составьте массив случайных уникальных чисел в определенном диапазоне

Я работаю над школьным проектом и мне нужно создать массив (размер 30) случайных уникальных чисел от 1 до 70.Мне удалось найти, как создать массив случайных уникальных чисел, но не от 1 до 70.public int[] ShuffleArray(int[] arr) { Random rand = new Random(); int[] array = new int[70]; for (int i = 0; i rand.Next(1, 71)).ToArray(); for (int k = 0; k Я изменил его по отзывам, но он все равно не работает.
D

Daniel

6 лет назад

Ответов: 1

Как скопировать или преобразовать массив Int [] в переменную на странице JSP

У меня есть страница JSP, на которую я отправил некоторые параметры, включая массив int []; после некоторых операций этот массив заполняется некоторыми числами. Также внутри этой JSP-страницы есть сценарий, в котором я объявляю такой массив: var matrix = []; ... Мне нужно скопировать или преобразовать мой массив int [] в матрицу var, как я могу выполнить такую ​​операцию? Не могли бы вы поделиться кодом, необходимым для этого?Пробовал сделать var matrix = []; matrix = ... Где myArray - этоint[] myArray = new int[length]; Но не вышло. Надеюсь, я предоставил всю необходимую информацию, если вам нужна дополнительная информация, не стесняйтесь спрашивать, заранее спасибо.
Z

Zoythrus

6 лет назад

Ответов: 2

2022 WebDevInsider