Jquery환경에서 List<T> 처럼 사용 방법?

안녕하세요. :smile:

jQuery 환경에서 아래와 같은 코드를 작성하고 싶은데요!

class User
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Address { get; set; }
}

...

private void Test 
{
    var source = new List<User>();
    var items = { "0;James;Seoul", "1;Elena;Seoul", "2;David;Seoul" };
    foreach (var data in items)
    {    
        source.Add(new User { Id = data.Split(';')[0],
            Name = data.Split(';')[1],
            Address= data.Split(';')[2] });
    }

    foreach (var user in source)
    {
        Console.WriteLine(user.Name);
    }
}

어떻게 하면 jQuery 환경 하에서
가능한 쉽고 간단하게 위의 코드를 구현할 수 있을까요?

읽어주셔서 감사합니다.

좋아요 2

어떻게 찾아야 할지 몰라 당황했는데;;
아래처럼 해결했습니다. :smile:

혹시라도 저처럼 필요하신 분을 위해 소스코드 남깁니다!

(Javascript와 Python은 서로 유사한 것 같네요?)

function test() {
    
    var items = [];
    items.push("Id": "0", "Name": "James", "Address": "Seoul");
    items.push("Id": "1", "Name": "Elena", "Address": "Seoul");
    items.push("Id": "2", "Name": "David", "Address": "Seoul");
    
    $.each(items), function (index, item) {
        alert(item.Name);
    });
}

그리고 dictionary를 사용한 부분도 함께 공유드립니다.

function test2(item) {

    var dicItems = {};

    var key = item.Id + item.Name  + item.Address;
    
    if (key in dicItems) {
        dicItems[key].push(item);
    }
    else {
        dicItems[key] = [item];
    }
}

감사합니다.

좋아요 3

일반적으로 javascript 에서 객체를 표현할때는 json 형태로 표시합니다

var items = []; //아이템 배열
items.push({“Id”: “0”, “Name”: “James”, “Address”: “Seoul”}); //배열에 object 추가
items.push({“Id”: “1”, “Name”: “Elena”, “Address”: “Seoul”});
items.push({“Id”: “2”, “Name”: “David”, “Address”: “Seoul”});
//하나의 객체가 필요하다면 배열을 돌아서 해당 값을 찾으면 됩니다.
for(var i=0; i < items.length; i++) {
if (items[i].Id === “1”) {
console.log(items[i]);
}
}

Dictionary 라고 쓰신 부분에 대해서 부연 설명을 드리자면,
Dictionary 와 같은 Key Value 형태는 따로 지원하지 않으나, 위의 객체 형식을 빌려 구성이 가능합니다.
var items = {}; //아이템 object
items[“0”] = {“Id”: “0”, “Name”: “James”, “Address”: “Seoul”};
items[“1”] = {“Id”: “1”, “Name”: “Elena”, “Address”: “Seoul”};
items[“2”] = {“Id”: “2”, “Name”: “David”, “Address”: “Seoul”};

if (“0” in items) { //items 에 "0"이라는 property 가 있다면
}

위 구조에 대해서는 C# 에서 List 를 통해 객체를 만드신 다음에 JsonConvert.SerializeObject로 해당 객체를 Json으로 변환해보시면 이해가 빠르실 겁니다.

좋아요 3

@bluepope 좋은 설명 감사드립니다. :smile:

이해가 잘 되네요!!

안녕하세요. javascript에서도 c#과 같은 Dictionary 형식의 내장객체가 존재합니다.
다만 비교적 최근(?)에 생겼기 때문에 IE11 에서는 정상적으로 동작하지 않을 수 있습니다.

좋아요 2

@ddochea 앗 그렇군요. 좋은 내용 감사드립니다.

좋아요 3