Просто возьмите предмет по индексу 0
в array
. См. Комментарии для более подробной информации:
//The initial data
var array = [{
label: "1",
value: "11"
},
{
label: "2",
value: "22"
},
{
label: "3",
value: "33"
},
{
label: "4",
value: "44"
},
];
//Access the item you want by it's index in the array (0-based)
var firstItem = array[0];
//Grab the "value" property from the object
var value = firstItem.value;
//Log your value
console.log(value);
Я думаю, что текущий зеленый ответ плохой , почему вы можете спросить?
Да и между прочим сериализация - это тоже плохо, возможно, вам придется добавлять Serializable повсюду (это тоже заставляет меня плакать).
Итак, каково решение:
Библиотека глубокого клонирования Java Библиотека клонирования - это небольшая java-библиотека с открытым исходным кодом (лицензия apache), которая глубоко клонирует объекты. Объекты не обязательно должны реализовывать интерфейс Cloneable. Фактически, эта библиотека может клонировать ЛЮБЫЕ объекты Java. Его можно использовать, например, в реализациях кеширования, если вы не хотите, чтобы кэшированный объект изменялся или всякий раз, когда вы хотите создать глубокую копию объектов.
Cloner cloner=new Cloner();
XX clone = cloner.deepClone(someObjectOfTypeXX);
Посмотрите на http://code.google.com/p/cloning/
Это одна из причин, почему никто не любит Cloneable
. Предполагается, что это интерфейс маркера, но в принципе он бесполезен, поскольку вы не можете клонировать произвольный объект Cloneable
без отражения.
Практически единственный способ сделать это - создать собственный интерфейс с public clone ()
метод (его не обязательно называть « clone ()
»). Вот пример из другого вопроса StackOverflow.
As you see, if a class tries to implement Cloneable
and you want a deep clone, then all of your constituent objects needs to be immutable, primitive, or need to also be Cloneable.
Often, a better and easier approach is to create a copy constructor.
public class Scope<C extends Comparable<C>> implements Comparable<Scope<C>>, Serializable {
private C starts;
private C ends;
public Scope(final Scope original) {
starts = new C(original.starts);
ends = new C(original.ends);
// initialize all my other fields from "original"
}
}
and of course you need a copy constructor on C
that is capable of handling polymorphism.
If you have no access or ability to modify the source to C
, then any method of copying, no matter what the method, will be very difficult and potentially impossible. For example, it is not possible to make a copy of an enum
instance.
Немного ОТ, но вы можете сэкономить много будущего в этом:
catch (CloneNotSupportedException e) {
throw new RuntimeException("Clone not supported", e);
}
Чтобы при получении трассировки стека вы знали, какой объект вызвал проблему.
Ответить основной вопрос, ваш собственный интерфейс, который реализует public clone (), как написал mmyers, и требует, чтобы C также расширял это.
Как общий комментарий, по возможности избегайте использования Object.clone (). Если у вас есть контроль над соответствующим кодом, используйте вместо этого конструктор копирования. См. здесь для информации.