Ember.js MutableArray includes() Method
Ember.js is an open-source JavaScript framework used for developing large client-side web applications which is based on Model-View-Controller (MVC) architecture. Ember.js is one of the most widely used front-end application frameworks. It is made to speed up development and increase productivity. Currently, it is utilized by a large number of websites, including Square, Discourse, Groupon, Linked In, Live Nation, Twitch, and Chipotle.
The includes() method is used to check if a given object is present in the array or not.
Syntax:
includes(obj,startAt)
Parameters:
- obj: The object to find.
- startAt: The optional starting index to search from.
Returns: True if the array contains the object, else false.
Step 1: To run the following examples you will need to have an ember project with you. To create one, you will need to install ember-cli first. Write the below code in the terminal:
npm install ember-cli
Now you can create the project by typing in the following piece of code:
ember new <project-name> --lang en
Step 2: To start the server, type:
ember serve
Example 1: Type the following code to generate the route for this example:
ember generate route list
app/routes/list.js
import Route from '@ember/routing/route' ; export default class ListRoute extends Route { list = [ 'a' , 'a' , 'v' , 'c' , 'c' , 'a' , 'd' , 'q' , 'b' , 'z' , 'a' ]; item; idx; model() { return this .list; } setupController(controller, model) { super .setupController(controller, model); controller.set( 'list' , this .list); controller.set( 'item' , this .item); controller.set( 'idx' , this .idx); } } |
app/controllers/list.js
import Ember from 'ember' ; import { clear, insertAt, indexOf, lastIndexOf, includes } from '@ember/array' ; export default Ember.Controller.extend({ actions: { insertItem(item, idx) { this .list.insertAt(idx, item); }, getLastIndex(item) { let res = this .list.lastIndexOf(item); alert(res); }, getFirstIndex(item) { let res = this .list.indexOf(item); alert(res); }, clearList() { this .list.clear(); }, contains(item) { let res = this .list.includes(item); alert(`The list ${res ? '' : 'does not' } contains ${item}`); }, }, }); |
app/template/list.hbs
{{page-title "List"}} < h3 >Here is a list of Items: </ h3 > < ul > {{#each @model as |i|}} < li >{{i}}</ li > {{/each}} </ ul > < br />< br /> < div > < label >Enter Item: </ label > {{input value=this.item}} </ div > < div > < label >Enter Index: </ label > {{input value=this.idx}} </ div > < div > < input type = "button" id = "insert-item" value = "Insert Item" {{action "insertItem" this.item this.idx}} /> </ div > < br />< br /> < div > < label >Enter Item: </ label > {{input value=this.item}} </ div > < div > < input type = "button" id = "first-index-item" value = "Get First Index" {{action "getFirstIndex" this.item}} /> </ div > < div > < input type = "button" id = "last-index-item" value = "Get Last Index" {{action "getLastIndex" this.item}} /> </ div > < div > < input type = "button" id = "contains-item" value = "Contains?" {{action "contains" this.item}} /> </ div > < br />< br /> < input type = "button" id = "clear-items" value = "Clear" {{action "clearList"}} /> {{outlet}} |
Output: Visit localhost:4200/list to view the output

Example 2: Type the following code to generate the route for this example:
ember generate route party
app/routes/party.js
import Route from '@ember/routing/route' ; export default class PartyRoute extends Route { partyItems = [ 'Digital Camera' , 'Jugs, cups & straws' , 'Cold Drink' , 'Balloons' , 'Scissors' , 'Wine' , 'Cold Drink' , 'Table Confetti' , 'Party Hats' , 'Wine' , 'Napkins' , 'Party Plates' , 'Speakers' , 'Wine' , 'Music System' , 'Cold Drink' , 'Cups' , ]; item; idx; model() { return this .partyItems; } setupController(controller, model) { super .setupController(controller, model); controller.set( 'partyItems' , this .partyItems); controller.set( 'item' , this .item); controller.set( 'idx' , this .idx); } } |
app/controllers/party.js
import Ember from 'ember' ; import { insertAt, indexOf, lastIndexOf, includes } from '@ember/array' ; export default Ember.Controller.extend({ actions: { insertItem(item, idx) { this .partyItems.insertAt(idx, item); }, getLastIndex(item) { let res = this .partyItems.lastIndexOf(item); alert(res); }, getFirstIndex(item) { let res = this .partyItems.indexOf(item); alert(res); }, clearpartyItems() { this .partyItems.clear(); }, contains(item) { let res = this .partyItems.includes(item); alert(`The partyItems ${res ? '' : 'does not' } contains ${item}`); }, }, }); |
app/template/party.hbs
{{page-title "Party"}} < h3 >Here is a list of items: </ h3 > < ul > {{#each @model as |party|}} < li >{{party}}</ li > {{/each}} </ ul > < br />< br /> < div > < label >Enter Item: </ label > {{input value=this.item}} </ div > < div > < label >Enter Index: </ label > {{input value=this.idx}} </ div > < div > < input type = "button" id = "insert-item" value = "Insert Item" {{action "insertItem" this.item this.idx}} /> </ div > < br />< br /> < div > < label >Enter Item: </ label > {{input value=this.item}} </ div > < div > < input type = "button" id = "first-index-item" value = "Get First Index" {{action "getFirstIndex" this.item}} /> </ div > < div > < input type = "button" id = "last-index-item" value = "Get Last Index" {{action "getLastIndex" this.item}} /> </ div > < div > < input type = "button" id = "contains-item" value = "Contains?" {{action "contains" this.item}} /> </ div > < br />< br /> {{outlet}} |
Output: Visit localhost:4200/party to view the output

Reference: https://api.emberjs.com/ember/4.4/classes/MutableArray/methods
Please Login to comment...