Zhonghui

每个不曾起舞的日子,都是对生命的辜负

User Tools

Site Tools


程序:javascript:数组和对象

数组和对象


// Generated by AI
// 遍历数组
 
const data = [
  { "name": "Alice", "age": 25 },
  { "name": "Bob", "age": 30 },
  { "name": "Charlie", "age": 28 }
];
 
for (let i = 0; i < data.length; i++) {
  console.log(data[i].name, data[i].age);
}
 
for (const item of data) {
  console.log(item.name, item.age);
}
 
data.forEach(item => {
  console.log(item.name, item.age);
});
 
for (const item of data) {
  for (const key in item) {
    console.log(key, item[key]);
  }
}
 
const names = data.map(item => item.name);
console.log(names); // ["Alice", "Bob", "Charlie"]
 
// 数组常用操作
let arr = [1, 2, 3, 4, 5];
 
arr.push(6);       // 在末尾添加元素 [1,2,3,4,5,6]
arr.unshift(0);    // 在开头添加元素 [0,1,2,3,4,5,6]
 
arr.pop();         // 删除末尾元素 [0,1,2,3,4,5]
arr.shift();       // 删除开头元素 [1,2,3,4,5]
arr.splice(2, 1);  // 删除索引2的一个元素 [1,2,4,5]
 
arr.forEach(item => console.log(item));  // forEach
for (const item of arr) console.log(item); // for...of
 
arr.includes(3);     // true 是否包含某个元素
arr.indexOf(4);      // 2 返回元素的索引
arr.find(x => x > 3); // 4 返回第一个符合条件的值
arr.findIndex(x => x > 3); // 2 返回第一个符合条件的索引
 
let newArr = arr.map(x => x * 2);    // [2,4,6,8,10]
let filtered = arr.filter(x => x > 2); // [3,4,5]
 
let arr2 = [6, 7];
let merged = arr.concat(arr2); // [1,2,3,4,5,6,7]
let sliced = arr.slice(1, 3);  // [2,3] (不包含结束索引)
 
arr.reverse();            // 反转数组 [5,4,3,2,1]
arr.sort();               // 字符串排序
arr.sort((a, b) => a - b); // 数值升序 [1,2,3,4,5]
 
arr.join('-');     // "1-2-3-4-5" 转为字符串
arr.reduce((sum, x) => sum + x, 0);  // 15 累加
 
 
// 对象 Object 的常用操作
let dict = { name: "Alice", age: 25 };
 
dict.name;      // "Alice"
dict["age"];    // 25
 
dict.gender = "female";
dict["city"] = "Beijing";
 
delete dict.age;
 
"name" in dict;  // true
dict.hasOwnProperty("age"); // false
 
for (let key in dict) {
  console.log(key, dict[key]);
}
 
Object.keys(dict);    // ["name", "gender", "city"]
Object.values(dict);  // ["Alice", "female", "Beijing"]
Object.entries(dict); // [["name","Alice"],["gender","female"],["city","Beijing"]]
 
let extra = { country: "China" };
let newDict = { ...dict, ...extra };  // 展开运算符
 
// Map: 更现代的键值对集合
let map = new Map();
map.set("name", "Alice");
map.set("age", 25);
map.get("name");      // "Alice"
map.has("age");       // true
map.delete("age");    // 删除键
map.size;             // 键值对数量
map.forEach((v, k) => console.log(k, v));
/var/www/DokuWikiStick/dokuwiki/data/pages/程序/javascript/数组和对象.txt · Last modified: 2025/07/27 15:44 by zhonghui