Claude Code Plugins

Community-maintained marketplace

Feedback

Master JavaScript objects and arrays including manipulation methods, prototypal inheritance, and complex data structure patterns.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name data-structures
description Master JavaScript objects and arrays including manipulation methods, prototypal inheritance, and complex data structure patterns.
sasmp_version 1.3.0
bonded_agent 03-objects-arrays
bond_type PRIMARY_BOND
skill_type reference
response_format code_first
max_tokens 1500
parameter_validation [object Object]
retry_logic [object Object]
observability [object Object]

Data Structures Skill

Quick Reference Card

Object Operations

// Create
const obj = { name: 'Alice', age: 30 };

// Access
obj.name;           // Dot notation
obj['name'];        // Bracket notation
obj?.address?.city; // Optional chaining

// Modify
obj.email = 'a@b.com';       // Add/update
delete obj.age;              // Remove
const { name, ...rest } = obj; // Destructure

Object Methods

Object.keys(obj);       // ['name', 'age']
Object.values(obj);     // ['Alice', 30]
Object.entries(obj);    // [['name','Alice'], ['age',30]]
Object.fromEntries(entries);  // Reverse

Object.assign({}, a, b);  // Shallow merge
{ ...a, ...b };           // Spread merge (preferred)

Object.freeze(obj);       // Immutable
Object.seal(obj);         // No add/delete

Array Methods Cheat Sheet

Transform (new array)

arr.map(x => x * 2);         // Transform each
arr.filter(x => x > 0);      // Keep matches
arr.slice(1, 3);             // Extract portion
arr.flat(2);                 // Flatten nested
arr.flatMap(x => [x, x*2]);  // Map + flatten

Search

arr.find(x => x > 5);        // First match
arr.findIndex(x => x > 5);   // First index
arr.findLast(x => x > 5);    // Last match (ES2023)
arr.includes(5);             // Boolean check
arr.indexOf(5);              // Index or -1

Reduce

arr.reduce((acc, x) => acc + x, 0);  // Sum
arr.reduce((acc, x) => ({ ...acc, [x.id]: x }), {});  // Index by

Check

arr.every(x => x > 0);       // All pass
arr.some(x => x > 0);        // Any pass

Mutate (modify original)

arr.push(x);     // Add end
arr.pop();       // Remove end
arr.unshift(x);  // Add start
arr.shift();     // Remove start
arr.splice(i, n, ...items);  // Remove/insert
arr.sort((a,b) => a - b);    // Sort
arr.reverse();   // Reverse

Destructuring

// Object
const { name, age = 0 } = user;
const { name: userName } = user;  // Rename
const { address: { city } } = user;  // Nested

// Array
const [first, , third] = arr;  // Skip
const [head, ...tail] = arr;   // Rest
[a, b] = [b, a];               // Swap

Data Transformation Patterns

// Group by
const byRole = users.reduce((acc, u) => {
  (acc[u.role] ??= []).push(u);
  return acc;
}, {});

// Unique values
const unique = [...new Set(arr)];

// Index by ID
const byId = arr.reduce((acc, x) => ({ ...acc, [x.id]: x }), {});

Troubleshooting

Common Issues

Problem Symptom Fix
Shallow copy bug Nested changes shared Use structuredClone()
Mutation side effect Original changed Use spread/map
undefined access Property doesn't exist Use ?. optional chain
Sort not working Wrong order Provide compare function

Deep Clone

// Modern (preferred)
const deep = structuredClone(original);

// JSON (limited - no functions, dates)
const deep = JSON.parse(JSON.stringify(original));

Debug Checklist

// 1. Inspect structure
console.log(JSON.stringify(obj, null, 2));

// 2. Check array vs object
console.log(Array.isArray(value));

// 3. Check prototype
console.log(Object.getPrototypeOf(obj));

Production Patterns

Immutable Update

// Object
const updated = { ...user, name: 'New Name' };

// Array
const added = [...arr, newItem];
const removed = arr.filter(x => x.id !== id);
const updated = arr.map(x => x.id === id ? { ...x, ...changes } : x);

Safe Access

const city = user?.address?.city ?? 'Unknown';
const first = arr?.[0] ?? defaultValue;

Related

  • Agent 03: Objects & Arrays (detailed learning)
  • Skill: fundamentals: Variables and types
  • Skill: modern-javascript: ES6+ features