Свен, большое спасибо. В конце концов, я нашел другой путь, но это очень полезно, и я отметил как таковой.

его источника данных я получаю такие значения, как;

USA        |Arizona
USA        |Florida
UK         |England |Northamptonshire
UK         |England |Derbyshire
UK         |Wales   |Powys
Switzerland|Lucern

Это простые текстовые значения, которые повторяются в столбце.

Мне нужно встроить их динамически во вложенный массив

source: [
    {title: "USA",  children: [
      {title: "Arizona"},
      {title: "Florida"}
    ]}
  ],

Согласноhttps://github.com/mar10/fancytree/wiki/TutorialLoadData

К сожалению, мой мозг перестал работать сегодня, я не вижу элегантного пути.

Любые указатели будут оценены с благодарностью.

Так что я решил это в конце концов, используя сообщение от Оскара

function getNestedChildren(arr, parent) {
    var out = []
    for(var i in arr) {
        if(arr[i].parent == parent) {
            var children = getNestedChildren(arr, arr[i].id)

            if(children.length) {
                arr[i].children = children
            }
            out.push(arr[i])
        }
    }
    return out
}

http://oskarhane.com/create-a-nested-array-recursively-in-javascript/

Это создает вложенный массив.

Для обеспечения наличия предполагаемых значений (например, США, которая находится в иерархии, но не является уникальным значением).

		var CountryArray = CountryText.split("|");
	
		// Variables to hold details of each section of the Country path being iterated
		var CountryId = '';
		var CountryParentPrefix = '';
		var CountryParent = '';

		// Iterate each section of the delimeted Country path and ensure that it is in the array
		for(var i in CountryArray) 
		{

			var CountryId = CountryParentPrefix+CountryArray[i];
	
			// Find the Country id in the array / add if necessary
			var result = FlatSource.filter(function (Country) { return Country.id == CountryId });
			if (result.length == 0) {
					// If the Country is not there then we should add it
					var arrCountry = {title:CountryArray[i], parent:CountryParent, id:CountryId};
					FlatSource.push(arrCountry);
			}
			

			// For the next path of the heirarchy
			CountryParent = CountryId;
			CountryParentPrefix = CountryId+'|';
		}

Я не использовал предложение Свена, но подозреваю, что оно одинаково справедливо.

Ответы на вопрос(1)

Ваш ответ на вопрос