JSFiddle - React, Tailwind, and code Playground

HTML

<div>
    <select multiple="true" height="12" data-bind="options: list, optionsText: 'firstName', value: selectedItem"></select>
</div>
<div class="col-md-8">
    <p data-bind="text: selectedItem.firstName">First Name</p>
    <p data-bind="text: selectedItem.lastName">Last Name</p>
    <p data-bind="text: selectedItem.address">Address</p>
</div>
<button data-bind="click: addAddress">New</button>
<button data-bind="click: removeAddress">Delete</button>

JavaScript

var initialData = [{
    firstName: "Jimmy",
    lastName: "Jimbo",
    address: "111 Jimmy's Street, Jimtown"
}, {
    firstName: "Don",
    lastName: "Mob boss",
    address: "222 Mafia Street, Jimtown"
}];

var AddressModel = function (list) {
    var self = this;

    self.selectedItem = null;

    self.list = ko.observableArray(ko.utils.arrayMap(list, function (item) {
        return {
            firstName: item.firstName,
            lastName: item.lastName,
            address: item.address
        };
    }));

    self.addAddress = function () {
        self.list.push({
            firstName: "",
            lastName: "",
            address: ""
        });
    };

    self.removeAddress = function () {
        self.list.remove(function (item) {
            return item.firstName == self.selectedItem.firstName;
        });
    };
};

ko.applyBindings(new AddressModel(initialData));