[Immutable.js] Differences between the Immutable.js Map() and List()

时间:2020-12-02 19:13:25

The Immutable.js Map() is analogous to a Javascript Object or Hash since it is comprised of key-value pairs. The Immutable.js List() is analogous to a Javascript Array and contains many of the same native methods. Let's compare the two and dive into the basics of List().

Map: From Javascript plain object

Add item to the immtuable map:

let todo  = {
id: 10,
title: "Immutable,js"
}; let todos = Immutable.Map();
todo.set(todo.id, todo);

get item from Immtuable Map:

let selectedTodo = todos.get(todo.id);

List: From Javascript plain array

Add item to the Immutable List:

let shoppingList = Immutable.List();

let item = "Milk";

shoppingList.push(item);

get item from the Immutable List:

let selectedItem = shoppingList.get(0);

create List() from series of values:

// bad:
let list = Immutable.List.of("Milk", "Eggs", "Detergent", "Bread", "Steak"); // hard code a list of iterms // good:
const todoItems = ["Milk", "Eggs", "Detergent", "Bread", "Steak"];
let list = Immutable.List.of(...todoItems); var count = 0;
_.each(todoItems, (item) => {
expect(list.get(count)).to.equal(item);
count++;
})