这个问题已经在这里有一个答案:
我有一个选择元素的JavaScript中options collection。我想克隆项目的整个列表,而无需使用jQuery。这个怎么做?
您可以使用Node.cloneNode()
let collection = document.querySelectorAll('option');
let cloned = Array.from(collection).map(option => option.cloneNode(true));
const select = document.querySelector('select');
cloned.forEach(opt=>{
select.appendChild(opt)
})
<select>
<option>Option1</option>
<option>Option2</option>
<option>Option3</option>
<option>Option4</option>
</select>
这应该克隆和排序数据对象的,如果不会参与箭头方法的工作。
const clone = obj =>
Array.isArray(obj)
? obj.map(item => clone(item))
: obj instanceof Date
? new Date(obj.getTime())
: obj && typeof obj === 'object'
? Object.getOwnPropertyNames(obj).reduce((o, prop) => {
o[prop] = clone(obj[prop]);
return o;
}, {})
: obj;