2010-11-06 32 views
6

Tôi có một mảng như sau. Làm thế nào tôi sẽ lấy giá trị của một khóa cụ thể và đặt giá trị đó trong một biến?Làm thế nào để trả về một giá trị từ một đối tượng Literal dựa trên một khóa?

var obj = {"one":"1","two":"3","three":"5","four":"1","five":"6"}; 

Ví dụ: nếu tôi muốn lấy giá trị "ba", tôi sẽ làm như thế nào trong javascript hoặc jQuery?

+2

Đó không phải là mảng; đó là một đối tượng theo nghĩa đen. – strager

+1

Cảm ơn bạn đã làm rõ về điều này. – user357034

Trả lời

10

Bạn có thể làm điều này thông qua dot hoặc bracket ký hiệu, như thế này:

var myVariable = obj.three; 
//or: 
var myVariable = obj["three"]; 

Trong ví dụ thứ hai "three" có thể là một chuỗi trong một biến khác, đó là lẽ gì bạn đang sau. Ngoài ra, cho rõ ràng những gì bạn có chỉ là một đối tượng, không phải là một mảng :)

+0

Không có gì ngoài tình yêu dành cho bạn Nick, :) – user357034

+0

Tôi có thể hỏi bạn một câu hỏi phụ không? Cho phép nói rằng chìa khóa mà tôi muốn tìm là một biến. Nó sẽ là var mmyVariable = obj [key_that_I_am_looking_for]; – user357034

+0

@ user357034 - yup, chính xác –

2

Dưới đây là một giải pháp (bằng cách này đây là một đối tượng không phải là một mảng):

var obj = {"one":"1","two":"3","three":"5","four":"1","five":"6"}; 
var myFunc = function(thisObj, property) {console.log(obj[property])}; 
myFunc(obj, "two"); 
//Output will be 3 

Bạn cũng có thể làm được điều này dễ dàng hơn bằng cách sử dụng chức năng _.pluck từ thư viện Underscore JS.

Các vấn đề liên quan