Giả sử, chúng ta có một đối tượng chứa các mảng như sau:
const obj = {
'key1': ['value11', 'value12', 'value13', 'value14', 'value15'],
'key2': ['value21', 'value22', 'value23', 'value24', 'value25', 'value26', 'value27'],
'key3': ['value31', 'value32', 'value33', 'value34'],
'key4': ['value41', 'value42'],
};Chúng ta cần viết một hàm JavaScript nhận vào một đối tượng như vậy làm đối số thứ nhất và một chuỗi giá trị làm đối số thứ hai. Hàm sau đó sẽ kiểm tra khóa nào chứa giá trị đầu vào.
với 'value13', khóa sẽ là 'key1' với 'value32', khóa sẽ là 'key3'
Ví dụ
Code cho việc này sẽ là:
const obj = {
'key1': ['value11', 'value12', 'value13', 'value14', 'value15'],
'key2': ['value21', 'value22', 'value23', 'value24', 'value25', 'value26', 'value27'],
'key3': ['value31', 'value32', 'value33', 'value34'],
'key4': ['value41', 'value42'],
};
const searchByValue = (obj, val) => {
for (let key in obj) {
if (obj[key].indexOf(val) !== -1) {
return key;
}
}
return null;
};
console.log(searchByValue(obj, 'value32'));Kết quả
Kết quả hiển thị trong console sẽ là:
key3