Прежде чем понять, что такое массив, как объект, давайте сначала посмотрим на то, что такое массив, и что является объектом.
Массив : Array – это индексированная коллекция, которая может удерживать данные любого типа. Они созданы с []. Пример: пусть AR = [1, 2, «CAPSCODE», TRUE, NULL, 12]; Мы можем получить доступ к элементу AS ARR [2]//’CAPSCODE’
Объект : Объект – это коллекция ключей, которая удерживает свойства в ключ: Value Pair. Они созданы с {}. Пример:
let person = {
first_name: "John",
last_name: "Doe",
company: "capscode"
}
Мы можем получить доступ к недвижимости как
person.company // 'capscode'
или
person['company'] // 'capscode'
Все идет нормально. Пусть теперь посмотрите, что такое массив, как объект ‘
Массив – это объект Он проинтестен доступа к элементам и неотрицательной длине свойства, чтобы узнать количество элементов в нем. Это единственное сходство, которое он имеет с массивом. Нет никаких методов массива, таких как, толчок, поп, присоединиться, карта и т. Д. Объекты, которые проинмерднули свойства и длина, называются массивом. Такие объекты также могут иметь другие свойства и методы, но не хватает встроенных методов массивов.
Массив, как объект выглядит как:
var arr_like_obj = {
0 : "we",
1 : "are",
2 : "capscode",
length : 3
}
Это объект, который выглядит как массив. Некоторые распространенные примеры массивоподобных объектов являются Аргументы объекта в функциях и Htmlcollection или Odelist объекты возвращено из таких методов, как Document.GetelementsByTagname или Document.QuerySelectorall
В массиве, как объект мы не может получить доступ к свойствам Как мы использовали в объекте.
arr_like_obj.0; //SyntaxError: Unexpected number
но
arr_like_obj[0]; //'we'
Вы можете разместить разницу между этими двумя типами объекта объекта Access здесь
arr_like_obj.length // 3 Array.isArray(arr_like_obj); // returns false
Как массив, так и массив, как объект в JavaScript:
arr_like instanceof Object; // returns, true [ ] instanceof Object; // returns, true
Давайте посмотрим на несколько интересных примеров массива, объекта, массива, как объект
// simple array
const arr = ['a', 'b', 'c'];
console.log(Object.keys(arr)); // ['0', '1', '2']
// array-like object
const obj = { 0: 'a', 1: 'b', 2: 'c' };
console.log(Object.keys(obj)); // ['0', '1', '2']
// array-like object with random key ordering
const anObj = { 100: 'a', 2: 'b', 7: 'c' };
console.log(Object.keys(anObj)); // ['2', '7', '100']
const object1 = {
"a": 'somestring',
"b": 42,
"c": false
};
console.log(Object.keys(object1));
// expected output: ["a", "b", "c"]
Но почему мы им нужны? JavaScript Htmlcollection – это массивный объект
- ...
- ...
- ...
- ...
- ...
- ...
- ...
- ...
- ...
- ...
Документ. GtelelementsBytagname (‘li’) ; Вывод будет массивом, похожим на объект с длиной свойство в нем.
Как конвертировать массив, как на массив? Есть три способа сделать это. 1: используя распределительный оператор
[… Array_Like_obj]
2: Использование массива. Из () метод
Array.ROM (Array_Like_obj)
3: Использование для … цикла
Для (var i of array_like_obj)//Это просто используется для повторения для каждого элемента, не преобразующих напрямую в массив
4: Использование Object.values () метод
Object.values (Array_Like_obj)
Мы увидим все эти примеры один за другим, например: Позволяет иметь определенный образец объекта и функции, которую мы будем использовать в наших примерах.
//object with length property
var obj1 = {
0 : "we",
1 : "are",
2 : "capscode",
length : 3
}
//object without length property
var obj2 = {
0 : "we",
1 : "are",
2 : "capscode",
}
//function in which we will arguments property
function func(params) {
console.log(arguments)
//here we will do all our operations
console.log(a)
console.log(a.push("capscode"))
console.log(a)
}
1: Использование оператора распространения: [… Array_Like_obj]
Для распространения оператора для работы на работе Array_Like_obj/(любой объект) должен иметь iTerator I.E Он должен внедрить символ. Завестерство ()
console.log([...obj1]) //obj1 is not iterable
console.log([...obj2]) //obj1 is not iterable
function func(params) {
console.log(arguments) //outputs below image
var a = [...arguments]
console.log(a) //[1, 2, 3, 4, 5, 6, 6]
a.push("capscode")
console.log(a) //[1, 2, 3, 4, 5, 6, 6, "capscode"]
}
func(1,2,3,4,5,6,6)
2: array.from (array_like_obj)
Для массива. from () на работу на работу, Array_Like_obj/(любой объект) должен иметь свойство длины, но он может или не может реализует символ.
var c=Array.from(obj1)
console.log(c) //["we", "are", "capscode"]
c.push("devs")
console.log(c) //["we", "are", "capscode","devs"]
var n = Array.from(obj2)
console.log(n) //[] as length property is not there
function func(params) {
console.log(arguments) //always outputs same image above, kindly refer that.
var a=Array.from(arguments)
console.log(a) //[1, 2, 3, 4, 5, 6, 6]
a.push("capscode")
console.log(a) //[1, 2, 3, 4, 5, 6, 6, "capscode"]
}
func(1,2,3,4,5,6,6)
3: Использование для … цикла
для работы на работу, Array_Like_Object должен реализовывать символ. Метод Symbol.Iterator – автоматически называется автоматически, но мы также можем сделать это напрямую.
for (var i of obj1){
console.log(i) //TypeError: obj1 is not iterable
}
for (var i of obj2){
console.log(i) //TypeError: obj2 is not iterable
}
function func(params) {
var realArray = [];
for(const element of arguments) {
realArray.push(element);
}
console.log(realArray) //[1, 2, 3, 4, 5, 6, 6]
}
func(1,2,3,4,5,6,6)
4: Использование Object.values () Метод Object.values.values. ():
для Object.Value, чтобы работать над, продолжительность свойства или объекта. Завестер () не должен
var a = Object.values(obj1)
console.log(a) //["we", "are", "capscode", 3]
a.push("devs")
console.log(a) //["we", "are", "capscode", 3, "devs"]
var b = Object.values(obj2)
console.log(b) //["we", "are", "capscode"]
b.push("devs")
console.log(b) //["we", "are", "capscode", "devs"]
function func(params) {
//console.log(arguments) //always outputs same as the above image
var a= Object.values(arguments)
console.log(a) //[1, 2, 3, 4, 5, 6, 6]
console.log(a.push("capscode"))
console.log(a) //[1, 2, 3, 4, 5, 6, 6, "capscode"]
}
func(1,2,3,4,5,6,6)
Мы надеемся, что теперь на массиве, как объект, ясно для вас. Если на самом деле, пожалуйста, оцените нас и дайте нам знать ваш обзор в комментарии.
Это мой дорогой Devs:)
Мы сделаем с тем, что такое массив, как объект, теперь вы можете реализовать его нигде без каких-либо путаций.
Если вам нравится, пожалуйста, дайте 👍
Спасибо, CAPSCODE www.capscode.in.
Оригинал: “https://dev.to/capscode/what-is-array-like-object-in-javascript-3f5m”