1. 程式人生 > >js動態產生物件push進陣列,發現數組所有元素(element or object)一樣

js動態產生物件push進陣列,發現數組所有元素(element or object)一樣

原因:物件是同一個物件,動態建立物件時,不斷對物件賦值,push進陣列,陣列[obj,obj,obj],所有的obj值相同,因而導致陣列中都是同一個物件

talk is cheap,show you the code

錯誤寫法:

var obj = {
            id: null,
            name: '',
        };
var str = [];
for (var i = 0; i < 5; i++) {
    obj.id = i;
    obj.name = 'name_' + i;
    str.push(obj);
    console
.info(obj); } console.info(str);

演示結果:

這裡寫圖片描述
正確寫法:

var str = [];
for (var i = 0; i < 5; i++) {
     var obj = {
         id: i,
         name: 'name_' + i,
     };
     str.push(obj);
     console.info(obj);
 }
 console.info(str);

演示結果:
這裡寫圖片描述

相關推薦

js動態產生物件push陣列發現所有元素element or object一樣

原因:物件是同一個物件,動態建立物件時,不斷對物件賦值,push進陣列,陣列[obj,obj,obj],所有的obj值相同,因而導致陣列中都是同一個物件 talk is cheap,show you

輸入一個正整數陣列所有數字拼接起來排成一個數 列印能拼接出的所有數字的最小的一個。例如輸入{3,32,321,4}則列印最小的數字是 3213234

public class FandMax { public void makeMax(int[] nums){ boolean flag=true; for (int i = 0; i < nums.length; i++) { for (int j = 0; j <

【Java】【演算法練習】輸入一個正整數陣列,數組所有數字拼接起來排成一個數列印能拼接出的所有數字中最小的一個。例如輸入陣列{332321}則打印出這三個數字能排成的最小數字為321323。

題目描述:         輸入一個正整數陣列,把數組裡所有數字拼接起來排成一個數,列印能拼接出的所有數字中最小的一個。例如輸入陣列 {3,32,321},則打印出這三個數字能排成的最小數字為321323。 解題思路:        解題思路: 比較兩個字串s1 S2的

JS動態寫入HTML程式碼《變數方法函式多個入參拼接》

寫這篇文章,主要是想mark一下,因為JS動態生成HTML(這裡都預設是生成大段的HTML,而不是簡單的標籤元素),常用的兩種語法格式: 一種是es6的寫法,反撇,' `` ',在英文語法輸入狀態下,esc正下方的按鍵。但是這種語法存在相容性的問題,我在移動端的專案中遇到過,使用JQuery,沒

JS動態建立物件的屬性詳解

面向物件的JavaScript在客戶端編碼時提供了極大的靈活性,Javascript物件上的屬性有助於設定可在物件內使用以管理和使用資料的值。 我對JavaScript中屬性的理解,在javascript中,可以通過在文字物件上定義變數來建立屬性。 例如 var obj = {

陣列物件遍歷以及特殊的裡的物件處理

做題碰到了數組裡的物件的問題,特記下 一、簡單遍歷 //陣列 var x = [1,2]; for(var i = 0; i < arr.length; i++ ){ //處理 console.log(arr[i]);//輸

java反射動態物件屬性賦值並獲取屬性值

import java.lang.reflect.Field; import java.lang.reflect.Method; import java.text.SimpleDateFormat; import java.util.Date; impo

js動態控制表單的trtd的顯示和隱藏

無論是事先寫好的,還是動態生成的,要找到指定的tr或td都必須知道其相關的一個屬性,未必必須是id或name,然後無論是在一個table還是多個 table都可以通過document.getElementsByTagNames( "tr ")或td,取得集合,……再根據知道

js 判斷某個物件是否在陣列

var str = "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17" var srcStr = "1"; if ((',' + str + ',').search

javaScript物件裡面組裝陣列陣列組裝物件

function show(){ var obj= new Object(); obj["shiJuanId"]=9; obj["picture"]="img.jpg"; obj["questionTitle"]="1您為什麼喜歡我們公

每天一個JS 小demo之原生splice方法書寫。主要知識點:鍛煉思維邏輯能力對於方法的理解和各種情況的考量

scrip charset 是否 isn 如果 情況 del 當前 cti <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <titl

每天一個JS 小demo之韓雪冬輪播圖。主要知識點:htmlcss布局對於和對象的理解和運用

身高 全局 borde ava ebo 空間 use mouseout desc 1 @charset "utf-8"; 2 /* CSS Document */ 3 4 * { padding: 0; margin: 0; } 5 li { list-st

162輸出的二制表示

blank tro 字符 toa 無符號 quest fff target back itoa轉換為2進制的char*字符串,輸出,cout<<hex<<128輸出16進制 https://www.zhihu.com/question/2032921

js 當變數值為0判斷是否為空時0==''返回ture的問題

var aa = 0; if(aa==""){ alert("111"); } ------------------------------ var aa = 00; alert(aa==""); 都是返回true。 這是因為0與 ’ ’ 轉換成布林型都是false的。

rust學習筆記基礎篇3--陣列切片,元的變數宣告(霜之小刀)

rust學習筆記基礎篇3–陣列,切片,元組的變數宣告(霜之小刀) 歡迎轉載和引用,若有問題請聯絡 若有疑問,請聯絡 Email : [email protected] QQ:2279557541 陣列指的是一組型別必須相同,個數不變的組合 切

給定一個整數陣列判斷是否存在重複元素

給定一個整數陣列,判斷是否存在重複元素。 如果任何值在陣列中出現至少兩次,函式返回 true。如果陣列中每個元素都不相同,則返回 false。 示例 1: 輸入: [1,2,4,1] 輸出: true 示例 2: 輸入: [1,2,3,6] 輸出: false 示例 

給定一個數和一個數不一定在陣列裡刪掉這個數字返回剩下的陣列長度。

給定一個數組和一個數(該數不一定在陣列中),從數組裡刪掉這個數字,返回剩下的陣列長度。 如:A[] = {1, 2, 3, 4, 5}要刪除數字 3,那麼返回陣列長度為 4。 親愛的小夥伴們,題目是不是很簡單呢? 提示:int removeElement(int

關於動態修改easyui datagrid行樣式不同樣式覆蓋優先順序問題class

easyui->datagrid->rowStyler 釋義:直接return class實際在html中是疊加class,並不會移除已有的自定義class,這會導致class的優先順序是根據在css檔案中的先後來判斷優先順序,達不到新的覆蓋舊的的效果,故此處先移除自定義class,再載入新cl

原生js實現淘寶輪播圖支援左右和跳轉滑鼠點多快都不會亂

用transform是因為這個比left的效能好。 這個是演示網址(不要直接存下來哦):https://shalltears.github.io/test-sowing-map/ 。 這個是完整程式碼下載地址,覺得還行的下載支援一下:https://download.csdn.ne

JS能力測評4:移除陣列中的元素直接修改arr

思路: 直接運用splice函式,若arr陣列元素和item相等,則刪除。該處運用了一個技巧,從陣列末尾開始判斷,這樣不用考慮刪除元素而導致位置變化的影響。 function removeWithoutCopy(arr, item) { for(var i=arr.length-1;