Looping and Iteration
Looping and Iteration help to render the list. Looping and Iteration is a structure that repeats a sequence of directions until a specific condition is met.
In Lightning web component Looping can be achieved in two way
- For:each
- Iterator
for:each={array}
For:each directive is used to iterate the array and render it. You must use a key directive to assign a unique ID to each item on the list.
To access the current item in for each we need to use the for:item=”currentItem” and to access the current item’s index, use for:index=”index”.
Let’s create the apex method
Accountcontroller.js
public class accountclass {
@AuraEnabled (cacheable=true)
public static List accountclass() {
List acc=[select id,name from Account limit 5];
return acc;
}
}

Create the component
Salesforcedriller.html
<template>
<lightning-card title="Account List using Apex Wire To Function in Salesfroce Driller" icon-name="custom:custom63">
<div class="slds-m-around_medium">
<template for:each={accounts} for:item="acc">
<p key={acc.Id}>{acc.Name}</p>
</template>
</div>
</lightning-card>
</template>

Salesforcedriller.js
import { LightningElement, wire,track } from 'lwc';
import accountclass from '@salesforce/apex/accountclass.accountclass';
export default class AccountListLWC extends LightningElement {
@track accounts;
@track error;
@wire(accountclass)
wiredAccounts({ error, data }) {
if (data) {
this.accounts = data;
} else if (error) {
console.log(error);
this.error = error;
}
}
}

Output

iterator:iteratorName={array}
This works the same as for:each directive but We Use this directive to apply special behavior to the first or last item in an array and render a list in your component.
Access these properties on the iteratorName:
- value—The value of the item in the list.
- syntax is iteratorName.value.propertyName.
- index—The index(0,1,2..) of the item in the list.
- first—check whether the item is the first item on the list.
- last—check whether the item is the last item on the list.
Create the component
Salesforcedriller.html
<template>
<lightning-card title="Salesforce Driller" icon-name="custom:custom14">
<ul class="slds-m-around_medium">
<template iterator:it={salesforcedriller}>
<li key={it.value.Id}>
<div if:true={it.first} class="list-first">
This is First Item Name: {it.value.Name}
</div>
{it.value.Name}
<div if:true={it.last} class="list-last">
This is Last Item Name: {it.value.Name}
</div>
</li>
</template>
</ul>
</lightning-card>
</template>

salesforcedriller.js
import { LightningElement, track } from 'lwc';
export default class ConditionalSalesforcedriller extends LightningElement {
salesforcedriller = [
{
Id: 1,
Name: 'salesforcedriller-I'
},
{
Id: 2,
Name: 'salesforcedriller-II'
},
{
Id: 3,
Name: 'salesforcedriller-III'
},
];
}

Output
