欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JS如何遍歷帶有子集的數(shù)組集合(嵌套數(shù)組)

 更新時(shí)間:2023年06月29日 14:55:41   作者:薄荷琴糖  
這篇文章主要介紹了JS如何遍歷帶有子集的數(shù)組集合(嵌套數(shù)組)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

JS遍歷帶有子集的數(shù)組集合

js中兩種for循環(huán):

for(var i in obj)
for(var i=0;i<obj.length;i++)

區(qū)別:

for(var i in obj)

  • 是增強(qiáng)for循環(huán),是不使用下標(biāo)的一種遍歷方式,簡(jiǎn)單高效,缺點(diǎn)是不能使用下標(biāo)。
  • 如果想要循環(huán)遍歷一個(gè)json對(duì)象就用第一個(gè)
  • 如果想循環(huán)遍歷一個(gè)數(shù)組對(duì)象就用第二個(gè)

for(var i in obj)

  • 1.遍歷數(shù)組時(shí),i是索引值,arr[i]是索引號(hào)對(duì)應(yīng)的值。
  • 2.遍歷字符串時(shí),i是索引值,arr[i]是索引號(hào)對(duì)應(yīng)的字符。
  • 3.遍歷json對(duì)象時(shí),i是冒號(hào)前面的值,json[i]是冒號(hào)后面的值。

遍歷嵌套數(shù)組(遞歸)【判斷子集】

traversal(dataInfo)//dataInfo是要循環(huán)遍歷的集合
//遍歷方法
function traverse(data) {
            for (var i in data) {
                if (data[i].children) {
                    traverse(data[i].children)
                }
                if (!data[i].children.length) {
                    delete data[i].children;
                }
            }
        }

例如我的集合如下

我要獲取其中的Name并輸出

代碼如下:

traversal(dataInfo)//dataInfo是要循環(huán)遍歷的集合
//遍歷方法
function traverse(data) {
            for (var i in data) {
                alert(data[i].Name)
                if (data[i].children) {
                    traverse(data[i].children)
                }
                if (!data[i].children.length) {
                    delete data[i].children;
                }
            }
        }

使用JS找出給定數(shù)組的所有子集

題目描述

給定一組不含重復(fù)元素的整數(shù)數(shù)組 nums,返回該數(shù)組所有可能的子集(冪集)。

說(shuō)明:解集不能包含重復(fù)的子集。

解題思路

  • 采用二進(jìn)制的思路,全0對(duì)應(yīng)空集,全1對(duì)應(yīng)全集
  • 根據(jù)數(shù)組長(zhǎng)度決定二進(jìn)制位數(shù)
  • 遍歷二進(jìn)制各值,使用按位與操作符,生成數(shù)組的子集

解題代碼

/**
?* @param {number[]} nums
?* @return {number[][]}
?*/
var subsets = function(nums) {
? ? let res = [], len = nums.length;
? ? for (let i = 0; i < (1 << len); i++) {
?? ??? ?let arr = [];
? ? ? ? for (let j = 0; j < len; j++) {
? ? ? ? ? ? if (i & (1 << j)) arr.push(nums[j]);
? ? ? ? }
? ? ? ? res.push(arr);
? ? }
? ? return res;
};

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 由document.body和document.documentElement想到的

    由document.body和document.documentElement想到的

    不知道大家對(duì)這個(gè)標(biāo)題有沒(méi)有想法,反正此前我一直把他們混為了一談。其實(shí)不然,首先需有個(gè)“標(biāo)準(zhǔn)”的概念。
    2009-04-04
  • 學(xué)前端,css與javascript重難點(diǎn)淺析

    學(xué)前端,css與javascript重難點(diǎn)淺析

    JavaScript是一種屬于網(wǎng)絡(luò)的腳本語(yǔ)言,已經(jīng)被廣泛用于Web應(yīng)用開(kāi)發(fā),CSS(Cascading Style Sheet)層疊樣式表單,今天給大家分享css與javascript重難點(diǎn),感興趣的朋友一起看看吧
    2020-06-06
  • 詳解webpack-dev-server使用http-proxy解決跨域問(wèn)題

    詳解webpack-dev-server使用http-proxy解決跨域問(wèn)題

    這篇文章主要介紹了詳解webpack-dev-server使用http-proxy解決跨域問(wèn)題,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01
  • webpack2.0搭建前端項(xiàng)目的教程詳解

    webpack2.0搭建前端項(xiàng)目的教程詳解

    這篇文章主要給大家介紹了關(guān)于webpack2.0搭建前端項(xiàng)目的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用webpack2.0具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-04-04
  • 淺談js對(duì)象屬性 通過(guò)點(diǎn)(.) 和方括號(hào)([]) 的不同之處

    淺談js對(duì)象屬性 通過(guò)點(diǎn)(.) 和方括號(hào)([]) 的不同之處

    下面小編就為大家?guī)?lái)一篇淺談js對(duì)象屬性 通過(guò)點(diǎn)(.) 和方括號(hào)([]) 的不同之處。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-10-10
  • ionic開(kāi)發(fā)中點(diǎn)擊input時(shí)鍵盤(pán)自動(dòng)彈出

    ionic開(kāi)發(fā)中點(diǎn)擊input時(shí)鍵盤(pán)自動(dòng)彈出

    ionic開(kāi)發(fā)移動(dòng)端界面時(shí),在輸入用戶名和密碼的時(shí)候,輸入法不要擋住我的輸入框,并且輸入框往上滾動(dòng)的時(shí)候,頂部標(biāo)題不要上移,下面給大家分享實(shí)現(xiàn)代碼,一起看看吧
    2016-12-12
  • uni-app實(shí)現(xiàn)獲取驗(yàn)證碼倒計(jì)時(shí)功能

    uni-app實(shí)現(xiàn)獲取驗(yàn)證碼倒計(jì)時(shí)功能

    這篇文章主要為大家詳細(xì)介紹了uni-app實(shí)現(xiàn)獲取驗(yàn)證碼倒計(jì)時(shí)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • 小程序錄音功能實(shí)現(xiàn)

    小程序錄音功能實(shí)現(xiàn)

    這篇文章主要介紹了小程序錄音功能實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • JavaScript數(shù)據(jù)結(jié)構(gòu)與算法之基本排序算法定義與效率比較【冒泡、選擇、插入排序】

    JavaScript數(shù)據(jù)結(jié)構(gòu)與算法之基本排序算法定義與效率比較【冒泡、選擇、插入排序】

    這篇文章主要介紹了JavaScript數(shù)據(jù)結(jié)構(gòu)與算法之基本排序算法定義與效率比較,結(jié)合實(shí)例形式詳細(xì)總結(jié)分析了javascript排序算法中的冒泡、選擇、插入等排序算法原理與操作技巧,需要的朋友可以參考下
    2019-02-02
  • 微信小程序 wx:for 與 wx:for-items 與 wx:key的正確用法

    微信小程序 wx:for 與 wx:for-items 與 wx:key的正確用法

    這篇文章主要介紹了微信小程序 wx:for 與 wx:for-items 與 wx:key的正確用法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05

最新評(píng)論