Это может быть реализовано с помощью модуля pause
:
---
- hosts: server01
gather_facts: True
tasks:
- pause:
prompt: please enter the name for the target [{{ ansible_hostname }}]
register: prompt
- debug:
msg: "{{ prompt.user_input if prompt.user_input else ansible_hostname }}"
Вы хотите использовать здесь объекты, а не массивы. Потому что массивы - это списки с индексом.
Рабочий пример:
var arrNumber = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 2, 4, 6, 8, 0 ,4, 6, 8, 4];
var arrString = ["a", "e", "i", "o", "u", "a", "i", "u", "i"];
var arrDuplicateValues = {};
// Fist time: Only number
arrNumber.forEach(x => {
arrDuplicateValues[x] = (arrDuplicateValues[x] || 0) + 1;
});
console.log(arrDuplicateValues); // OK
// Second time: With string
arrDuplicateValues = {};
arrString.forEach(x => {
arrDuplicateValues[x] = (arrDuplicateValues[x] || 0) + 1;
});
console.log(arrDuplicateValues); // NOK
console.log(arrDuplicateValues["i"]);
arrDuplicateValues
является объектом во второй раз, потому что массив не имеет строкового индекса. Таким образом, хотя вы инициализировали его как Array (), в конечном итоге он стал картой (пара ключ-значение), поэтому, когда вы просто пытались напечатать всю карту, ничего не получилось. Если вы просто измените инициализацию на arrDuplicateValues = {};
во второй раз, она будет работать нормально.
var arrNumber = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 2, 4, 6, 8, 0 ,4, 6, 8, 4];
var arrString = ["a", "e", "i", "o", "u", "a", "i", "u", "i"];
var arrDuplicateValues = new Array();
// Fist time: Only number
arrNumber.forEach(x => {
arrDuplicateValues[x] = (arrDuplicateValues[x] || 0) + 1;
});
console.log(arrDuplicateValues); // OK
// Second time: With string
arrDuplicateValues = {};
arrString.forEach(x => {
arrDuplicateValues[x] = (arrDuplicateValues[x] || 0) + 1;
});
console.log(arrDuplicateValues); // NOK
console.log(arrDuplicateValues["i"]);