現在、サーバ側でレンダリングされているフォームからオブジェクトを構築しています。私は下の画像に表示されているすべてのチェックボックスを集めて、各ステップ(1,2,3など)のすべてのチェックボックスがプロパティparentNode
に基づく単一のオブジェクトであるように並べ替えようとしています。入力タグのdomオブジェクトをフィルタリングする
現在、document.querySelectorAll('.checkboxes')
はすべてのチェックボックスを次の形式で取得します。
var newObj = {
stepOne: [
{
name: 'one',
parentNode: {
id: 'stepOne'
}
},
{
name: 'three',
parentNode: {
id: 'stepOne'
}
},
],
stepTwo: [
{
name: 'two',
parentNode: {
id: 'stepTwo'
}
},
]
}
通常、私はこのような何かを:
var newObj = [
{
name: 'one',
parentNode: {
id: 'stepOne'
}
},
{
name: 'two',
parentNode: {
id: 'stepTwo'
}
},
{
name: 'three',
parentNode: {
id: 'stepOne'
}
},
]
新しいオブジェクトがあるべき
let stepOne = function(step) {
return step.parentNode.getAttribute('id') === 'stepOne';
}
let stepTwo = function(step) {
return step.parentNode.getAttribute('id') === 'stepTwo';
}
let allTheStepOnes = fetchCheckBoxes.filter(stepOne);
をしかし、フィルタは、DOMオブジェクトでは動作しません、これは同様に非効率です。
newOrderオブジェクトをループする方法はありますか?私は結果をループし、データの一部だけを取り出す必要があります。 – AnAspiringCanadian
'newOrder'は無名関数です。あなたは通常の関数としてそれを使うことができます。 'var myNewList = newOrder(newObj)'です。次に、 'myNewList'を反復処理できます。 – user2340824